sobota, 7 września 2019

BasicLinux czyli system na procesor 486 i 4MB ramu

Chciałem przetestować kilka starych płyt głównych z procesorami 486 (może i 386). Long-story-short, potrzebowałem małego linuksa (żeby zmieścił się na dysku 16MB - IDE flash), który uruchomi się na 8MB (ten daje radę i na 4MB), pozwoli przetestować SoundBlastera i pozwoli przy okazji uruchomić memtest86.

Uwaga na wstępie: memtest86 w wersji dostępnej na stronie 4.3.cośtam NIE działa na 486 (potwierdzają to moje 'badania' oraz internet). Stąd na moim obrazie znajdują się wersja 4.0b3 oraz 3.5b [pobrane stąd].

Linki do źródeł, na podstawie których napisana została poniższa instrukcja.
Naprawa LILO (po zmianie rozmiaru dysku LILO padło)
Zmiana rozmiaru obrazu dysku
Konfiguracja LILO 1 2
Konwertowanie RAW do VDI (VirtualBox) 1 2
Montowanie partycji z obrazu RAW
BasicLinux (obraz Qemu, paczki i instrukcje)
BG-Rescue (system awaryjny na FDD)

Instrukcja stworzenia obrazu (kolejność :
Na początek zmiana rozmiaru dysku (co, jeśli nie ma takiej potrzeby można pominąć):

sudo losetup /dev/loop0 BL3-5qemu.img 
sudo partprobe /dev/loop0

W Gparted, należy zmienić rozmiar partycji na np. 14MB

sudo gparted /dev/loop0
sudo losetup -d /dev/loop0

Truncate przycina plik do zadanego rozmiaru (moje 16384000 to rozmiar dysku IDE)

truncate --size=16384000 BL3-5qemu.img
sudo losetup /dev/loop0 BL3-5qemu.img  
sudo partprobe /dev/loop0

W Gparted zwiększamy rozmiar partycji tak, by wypełniła dysk

sudo gparted /dev/loop0
sudo losetup -d /dev/loop0

Teraz należy przerobić obraz na czytelny dla VirtualBox'a (można też od razu wgrać pliki wymienione niżej, a VB'a zostawić sobie na koniec, ale ja chciałem mieć pewność, że naprawiłem LILO zanim się wezmę za 'resztę').

VBoxManage clonehd --format VDI BL3-5qemu.raw bl3-vbox-mod.vdi

Podpinamy obraz pod maszynę wirtualną (więcej pamięci niż 8MB! 128MB powinno być ok ;)) oraz dyskietkę bgrescue i uruchamiamy BG-Rescue, a w nim:

mount /dev/hda1 /mnt 
mount -o bind /dev /mnt/dev 
chroot /mnt 
lilo -b /dev/hda1 
exit 
reboot

Wyłączamy maszynę, odpinamy dyskietkę i sprawdzamy czy lilo już działa. Jeśli tak, przerabiamy dysk spowrotem na RAW, montujemy partycję z obrazu i wgrywamy pliki

VBoxManage clonehd --format RAW bl3-vbox-mod.vdi bl3-lilo.raw 
sudo losetup /dev/loop0 bl3-lilo.raw  
sudo losetup /dev/loop0 mkdir img 
sudo mount /dev/loop0p1 img/

sudo mc: moduły kernela (patrz instrukcja na BL), paczki, lilo.conf, boot_message.txt, rc oraz memtest86v4 i memtest86v3 wypakowane z obrazów ISO (ISOLINUX/MEMTEST). Przerabiamy obraz spowrotem na obrazy VDI. Update! Również memtest86v4b3 NIE działa na 486. 3.5 jest ok. Warto też w tym momencie wgrać kernel optymalizowany dla 486, ale nie jest to niezbędne.

VBoxManage clonehd --format VDI bl3-lilo.raw bl3-prefinal.vdi

...podpinamy pod VB, sprawdzamy czy wszystko jest jak należy i uruchamiamy "nowe" lilo i instalujemy paczki

chmod +x /etc/rc (jeśli rc jest niewykonalne)
lsmod (powinny być moduły sb)
lilo (naprawić jeśli coś mu się nie podoba)
cd /tmppkg mc.tgzpkg mpg123.tgz

Restartujemy system i sprawdzamy czy lilo włącza oba memtesty i bl'a. Przerabiamy obraz spowrotem na RAW i powinno być git

VBoxManage clonehd --format RAW bl3-prefinal.vdi bl3-final.raw

Obecnie moje lilo.conf i message wyglądają tak:

cat img/etc/lilo.conf && cat img/boot/boot_message.txt  ###  this line puts lilo in MBR of primary harddrive
###  otherwise lilo goes in root partition

boot=/dev/hda     prompt
message = /boot/boot_message.txt
linear

image=/boot/zimage
   label=bl
   root=CURRENT
   read-write

image=/boot/zimage.4dx
   label=bl4dx
   root=CURRENT
   read-write

image=/boot/memtest86v4.img
   label=mt
   read-only  
image=/boot/memtest86v3.img
   label=mt3
   read-only  



   This is ultralite linux testing disk adopted to work on old 486 PCs      with only 4MB of memory. Also it fits on 16MB HDD.
        

Hit [Enter] to run default or:

bl *    boots BasicLinux v3.50 converted Qemu disk image with SB audio support          and Midnight Commander [https://distro.ibiblio.org/baslinux/]
bl4dx   boots BasicLinux v3.50 with 486DX optimized kenrel                 mt      runs MemTest86 v4.0b3
mt3     runs MemTest86 v3.5b
       
Ważne jest to linear w lilo.conf. Większa szansa, że uda się lilo przenieść bez niespodzianek na dysk. 

Brak komentarzy:

Prześlij komentarz