Po to, by czasem móc zaktualizować BIOS, a najczęściej instalatory są windowsowe albo DOS-owe. Pierwszego póki co nie odważyłbym sie uruchomić przez Wine, a drugi teoretycznie powinno się uruchamiać z dyskietki startowej. I tu pojawia się problem, bo o ile w stacjonarnych komputerach stacje dyskietek jeszcze są czasami obecne, to w laptopach ich praktycznie nie ma. Na szczęście da się dyskietkę zastąpić po prostu pamięcią USB.
Potrzebujemy 3 rzeczy:
1. VirtualBox
Kod: Zaznacz cały
sudo apt-get install virtualbox-ose virtualbox-ose-modules-$(uname -r)
2. FreeDOS (wystarczy najmniejszy obraz ISO - fdbasecd.iso): http://www.freedos.org/freedos/files/
3. oczywiście pamięć USB
Teraz co należy zrobić:
1. Uruchom VirtualBox (w GNOME menu Aplikacje -> Narzędzia systemowe -> VirtualBox OSE)
2. Utwórz nową maszynę wirtualną z niewielkim dyskiem twardym (rozmiar taki, aby zmieścił się plik, który chcesz uruchomić pod DOS-em oraz nie za duży, aby zmieścił się na dysku USB; do prostych aktualizacji BIOS-u wystarczy kilka MB)
3. Zamontuj w maszynie pobrany obraz ISO z FreeDOS-em.
4. Uruchom maszynę wirtualną, zainstaluj FreeDOS na stworzonym wcześniej wirtualnym dysku twardym i wyłącz maszynę wirtualną.
5. Zamień plik wirtualnego dysku twardego na obraz dyskietki:
Kod: Zaznacz cały
vditool copydd ~/.VirtualBox/VDI/NazwaDysku.vdi ~/freedos_usb.img
Kod: Zaznacz cały
VBoxManage clonehd --format RAW ~/.VirtualBox/VDI/NewHardDisk1.vdi ~/freedos_usb.img
6. Podłącz pamięć USB i zgraj jej zawartość na dysk twardy komputera (jeśli chcesz ją zachować). W kolejnym kroku wszystkie dane na dysku USB zostaną skasowane!
7.
UWAGA! Bardzo ważne jest, aby znać prawidłową nazwę urządzenia z pamięcią USB! Nieprawidłowa nazwa może spowodować skasowanie danych na dysku twardym komputera!
Najprostszy sposób aby sprawdzić nazwę:
odłącz i podłącz pamięć USB, następnie wykonaj to polecenie:
Kod: Zaznacz cały
dmesg | tail
Kod: Zaznacz cały
[40966.134656] sd 6:0:0:0: [sdb] Attached SCSI removable disk
Najwyższy czas zamienić dysk USB w dyskietkę startową:
odmontuj dysk USB, jeśli zamontował się automatycznie po włożeniu (prawym klawiszem na ikonie dysku USB -> Odmontuj wolumin), a następnie wykonaj:
Kod: Zaznacz cały
sudo -s
cat ~/freedos_usb.img > /dev/nazwaUrządzenia; sync; sync; sync
Dyski twarde też bardzo często mają nazwę sda, sdb itd., dlatego upewnij się dwa razy, że wpisałeś nazwę urządzenia z pamięcią USB zanim naciśniesz enter!
W zależności od szybkości dysku USB oraz wielkość wirtualnego dysku twardego polecenie może potrwać dłuższą lub krótszą chwilę.
8. Gdy powyższa komenda zakończy działanie w terminalu wpisz:
Kod: Zaznacz cały
exit
9. Gdy pamięć USB jest już przygotowana i zawiera wszystkie pliki można przystąpić do ponownego uruchomienia komputera.
Istnieją przynajmniej 2 wersję postępowania w tym momencie:
- należy jednorazowo wywołać bootmenu komputera i wybrać w nim pamięć USB
- lub należy w BIOS-ie zmienić kolejność bootowania, aby pamięć USB była w kolejności przed dyskiem twardym
W trakcie uruchamiania komputera pojawiają się informacje jakim klawiszem można uruchomić BIOS (często opisane jako Enter setup) lub wejść do bootmenu.
10. Gdy komputer uruchomi się z dysku USB pojawi się bootmenu FreeDOS-a. Domyślnie zaznaczona jest pozycja 2:
jednak w moim przypadku ta opcja nie pozwalała na aktualizację BIOS-u - program flashujący zgłaszał błąd ochrony pamięci.2 - Load FreeDOS with EMM386+EMS and SHARE
Uruchomienie FreeDOS-a wybierając pozycję 3 pozwoliło mi dokonać aktualizacji:
Nie opisuję w tym poradniku jak posługiwać się VirtualBoksem ani DOS-em - to zupełnie inne zagadnienia.3 - Load FreeDOS including HIMEM XMS-memory driver
Podstawą tego poradnika jest wpis na blogu: http://blog.jamponi.net/2008/06/make-bo ... s-and.html
Testowałem kilka metod instalacji FreeDOS-a na USB, jednak dopiero ta zadziałała.