- Utwórz obraz dysku 1 GB:
dd if=/dev/zero of=dysk.img bs=1M count=1024
- Sprawdź obraz w hex:
xxd dysk.img | head
- Przygotuj wpis partycji MBR (16 bajtów) w offset 446 (0x1BE):
- Status bootowalności: 0x00 (nie bootowalna) lub 0x80 (bootowalna)
- 3 bajty CHS początku partycji (np. 0x00 0x02 0x00 lub ignoruj)
- Typ partycji: 0x83 (Linux)
- 3 bajty CHS końca partycji (np. 0x00 0x00 0x00 lub ignoruj)
- 4 bajty LBA start (np. 2048, czyli 0x00000800 w little endian)
- 4 bajty rozmiar partycji w sektorach (np. dla 1 GB = 2 097 152 sektory)
- Edytuj obraz dysku, np. konwertując do hex i wstawiając wpis:
xxd dysk.img > dysk.hex
# Edytuj plik dysk.hex, wstawiając wpis w offset 1BE (446)
xxd -r dysk.hex dysk.img
- Dodaj podpis MBR na końcu (offset 510 i 511):
55 AA
- Zweryfikuj wpis:
xxd dysk.img | grep -A 4 1be
- Utwórz urządzenie loop z offsetem startu partycji:
sudo losetup -f --show -o $((2048*512)) dysk.img
- Sformatuj partycję ext4:
sudo mkfs.ext4 /dev/loopX
- Montuj, testuj, odmontuj i zwolnij loop:
mkdir /tmp/test
sudo mount /dev/loopX /tmp/test
ls /tmp/test
sudo umount /tmp/test
sudo losetup -d /dev/loopX
Gotowe! Teraz masz ręcznie utworzoną partycję MBR na obrazie dysku, zrobioną wyłącznie za pomocą podstawowych narzędzi.