52 lines
1.5 KiB
Markdown
52 lines
1.5 KiB
Markdown
# rOSka
|
|
|
|
Compile with `fasm boot.asm`
|
|
|
|
## Reguirements
|
|
|
|
Pentium or newer should have all the bells and whistles needed.
|
|
|
|
In case you want all the details:
|
|
- 32bit 80386 or newer CPU
|
|
- VGA compatible graphics adapter
|
|
(640x480 graphics mode with 16 colours and a text mode)
|
|
- BIOS (or CSM, can't take anything granted these days...)
|
|
- RAM as I'm sure I'll just yank hard coded assumptions here and there
|
|
Like 1MB should be enough for now
|
|
- Hard disk access requires extended BIOS support (i486 CPU?)
|
|
Youknow, we support big disk like here in modern times.
|
|
- Floppies can't usually be accessed with extended calls, too bad.
|
|
As a workaround get USB or something and chainload with PLOP bootmgr
|
|
if direct USB boot is unavailable. Might make a floppy image at some
|
|
point.
|
|
|
|
|
|
## Preparing a bootable disk
|
|
|
|
- We use standard MBR, even on a floppy. Eat shit MSLosdows.
|
|
- We use partition 1 as our partition. This is ext2. Again, deal with it.
|
|
|
|
So make a new partition table, partition it, and format it on Lunix.
|
|
Or Losdows, but there you're on your own!
|
|
|
|
!!! WARNING
|
|
This will wipe the entire drive
|
|
Replace /dev/sdX accordingly and triplecheck
|
|
|
|
```
|
|
sudo parted -s /dev/sdX mklabel msdos
|
|
sudo parted -s /dev/sdX mkpart primary ext2 0 100% --align cylinder
|
|
sudo mkfs.ext2 -L rOSka /dev/sdX1
|
|
```
|
|
|
|
Now put the thinking part to the MBR preserving partitiontable
|
|
```
|
|
sudo dd bs=1 count=446 if=boot.bin of=/dev/sdX conv=notrunc
|
|
```
|
|
|
|
And wow, you have a disk with a filesystem that boots the fancy loader
|
|
|
|
|
|
```
|
|
TODO: set bootable flag in fdisk and use VBR instead of MBR?
|
|
```
|