Povýšení BIOSu s FreeDOS

Můžete potřebovat, nebo máte potřebu, aktualizovat verzi BIOSu vašeho počítač, jakmile váš výrobce oznámí nějáké vylepšení software BIOSu vaší základní desky. Obvykle nabízený instalační program je aplikace pro MS-DOS.

Zde se jedná o způsob aktualizace BIOSu z USB v Linuxu. Bude to fungovat s USB klíči a s micro/mini/SD kartami (s vhodným adaptérem).

Prvně je nutné, aby váš BIOS umožňoval zavádění z USB a byl kompatibilní s pevnými disky USB. Některé BIOSy povolují USB disketové, CD-ROM nebo zip mechaniky. Ačkoliv by takovéto mohly být použitelné, může být složitější tak provést povýšení. Nicméně nemusíte mít jinou možnost (především co se týče netbooků).

Potřebujete tři věci:

  1. USB klíč, přednostně <2 GB (FAT16 neumožňuje více jak 2 GB), základní FreeDOS (fdbasecd.iso) se instaluje na pouhých 5.8 MB. FAT16 je upřednostňovaný formát, jelikož není FAT32 rozeznán jako zaváděníschopný každým BIOSem.
  2. Instalační medium FreeDOSu fdbasecd.iso (8MB).
  3. qemu (apt-get install qemu), qemu je nezbytný pro instalátor. Vlastně, v qemu emulovaný BIOS umožní, aby byl váš USB disk viditelný ve FreeDOSu jako běžný pevný disk, takže můžete instalovat jako obvykle (a není tak vyžadováno vypálení FreeDOSu na CD).
Toto je absolutně nezbytné: v žádnou chvíli nesmí být váš USB disk připojen (mounted). Buďte velmi opatrní při výběru 'device node', jinak budou data na špatném disku nenapravitelně vymazána. To může být klidně váš hlavní pevný disk.

Vsuňte váš USB disk, pamatujte - nepřipojovat. Zkontrolujte dmesg (poslední zpráva, pokud jste jej zrovna vsunuli), který 'device node' byl přidělen vašemu USB disku. Předpokládejme, že /dev/sdb .

Vyčistěte váš USB disk. Všechna data budou ztracena. Také můžete vymazat vše, ne jen prvních 16 MB.

$ su
Heslo:
dd if=/dev/zero of=/dev/sdb bs=1M count=16
16+0 records in
16+0 records out
16777216 bytes (17 MB) copied, 2.35751 s, 7.1 MB/s

Vytvoření diskových oddílů na USB disku

Správné vytvoření diskových oddílů a formátování USB disku je pravděpodobně ta nejtěžší část.

Štítek diskového oddílu nastavte na FAT16, na <2 GB klíčích (všeobecně to zaručuje lepší kompatitibilitu).

Pak vstupte fdiskem na diskový oddíl:

# fdisk /dev/sdb
fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xa8993739.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Nyní vytvořte diskový oddíl:

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1018, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-1018, default 1018):
Using default value 1018

Potvrďte vytvoření diskového oddílu vytištěním tabulky diskových oddílů:

Command (m for help): p

Disk /dev/sdb: 2003 MB, 2003828736 bytes
62 heads, 62 sectors/track, 1018 cylinders
Units = cylinders of 3844 * 512 = 1968128 bytes
Disk identifier: 0xa8993739

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        1018     1956595+  83  Linux

Nastavte správný štítek diskového oddílu , '6' pro FAT16:

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): l

 0  Empty           1e  Hidden W95 FAT1 80  Old Minix       be  Solaris boot
 1  FAT12           24  NEC DOS         81  Minix / old Lin bf  Solaris
 2  XENIX root      39  Plan 9          82  Linux swap / So c1  DRDOS/sec (FAT-
 3  XENIX usr       3c  PartitionMagic  83  Linux           c4  DRDOS/sec (FAT-
 4  FAT16 <32M      40  Venix 80286     84  OS/2 hidden C:  c6  DRDOS/sec (FAT-
 5  Extended        41  PPC PReP Boot   85  Linux extended  c7  Syrinx
 6  FAT16           42  SFS             86  NTFS volume set da  Non-FS data
 7  HPFS/NTFS       4d  QNX4.x          87  NTFS volume set db  CP/M / CTOS / .
 8  AIX             4e  QNX4.x 2nd part 88  Linux plaintext de  Dell Utility
 9  AIX bootable    4f  QNX4.x 3rd part 8e  Linux LVM       df  BootIt
 a  OS/2 Boot Manag 50  OnTrack DM      93  Amoeba          e1  DOS access
 b  W95 FAT32       51  OnTrack DM6 Aux 94  Amoeba BBT      e3  DOS R/O
 c  W95 FAT32 (LBA) 52  CP/M            9f  BSD/OS          e4  SpeedStor
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a0  IBM Thinkpad hi eb  BeOS fs
 f  W95 Ext'd (LBA) 54  OnTrackDM6      a5  FreeBSD         ee  EFI GPT
10  OPUS            55  EZ-Drive        a6  OpenBSD         ef  EFI (FAT-12/16/
11  Hidden FAT12    56  Golden Bow      a7  NeXTSTEP        f0  Linux/PA-RISC b
12  Compaq diagnost 5c  Priam Edisk     a8  Darwin UFS      f1  SpeedStor
14  Hidden FAT16 <3 61  SpeedStor       a9  NetBSD          f4  SpeedStor
16  Hidden FAT16    63  GNU HURD or Sys ab  Darwin boot     f2  DOS secondary
17  Hidden HPFS/NTF 64  Novell Netware  b7  BSDI fs         fd  Linux raid auto
18  AST SmartSleep  65  Novell Netware  b8  BSDI swap       fe  LANstep
1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid ff  BBT
1c  Hidden W95 FAT3 75  PC/IX

Hex code (type L to list codes): 6

Changed system type of partition 1 to 6 (FAT16)

Aktivujte nový a jediný diskový oddíl:

Command (m for help): a
Partition number (1-4): 1

Vytiskněte znovu novou tabulku diskových oddílu, znovu s ověřte, že se diskový oddíl opravdu aktivoval:

Command (m for help): p

Disk /dev/sdb: 2003 MB, 2003828736 bytes
62 heads, 62 sectors/track, 1018 cylinders
Units = cylinders of 3844 * 512 = 1968128 bytes
Disk identifier: 0xa8993739

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1        1018     1956595+   6  FAT16

Zapiště novou tabulku diskových oddílu na váš USB disk a opusťte fdisk:

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: If you have created or modified any DOS 6.x
partitions, please see the fdisk manual page for additional
information.
Syncing disks.
# exit

Naformátujte nově vytvořený USB disk:

mkfs -t vfat -n FreeDOS /dev/sdb1
exit

Přípravná fáze je nyní u konce. Nyní jste naformátovali USB disk a vytvořili na něm diskový oddíl. Nic jiného nezbývá udělat a můžete již přistoupit k instalačnímu procesu.

Zavedení FreeDOSu s qemu

Jelikož DOS nemá ponětí o USB discích, musíte najít způsob, jak přinutit instalátor FreeDOSu, aby rozeznal USB jako běžný "pevný disk". Při live zavádění to za nás udělá systémový BIOS - zde si ale musíme poradit s qemu:

jako user$:
qemu -hda /dev/sdb -cdrom /path/to/fdbasecd.iso -boot d

ctrl-alt aktivuje zachytávání myši a klávesnice a umožní vám přepínat plochy, abyste si mohli znovu přečíst při každém kroku instrukce.

QEMU FreeDOS

Toto zavede CD FreeDOSu a namapuje zařízení USB jako 'primary master' pevný disk (zde umožňuje možnost emulac BIOSu v qemu, že se USB disk pro DOS objeví jako běžný pevný disk). Vyberte instalátor ze spouštěcího menu virtuálně zavedeného FreeDOSu:


1) Continue to boot FreeDOS from CD-ROM
1
enter

Pokračujte volením 1 a/nebo výběrem Yes, když jste požádáni.

freedos-inst1
freedos-inst2
freedos-inst3

Instalátor váš požádá o restart - ještě tak nečiňte, jelikož je potřeba opravit dvě chyby v instalátor FreeDOSu pro mbr a zaváděcí nabídku. Stiskněte písmeno n.

freedos-do not reboot type n

Zapsání zaváděcího sektoru na váš USB disk

První chyba k opravení je mbr s:

fdisk /mbr 1

Další chyba, která potřebuje opravit se týká zaváděcí nabídky ve vámi nově vytvořeném souboru fdconfig.sys, spusťte:

cd \
edit fdconfig.sys

a upravte řádek začínající command.com na:

1234?SHELLHIGH=C:\FDOS\command.com C:\FDOS /D /P=C:\fdauto.bat /K set

(vlastní příkaz neměňte, jen přidejte na začátek řádku "1234?" (před SHELLHIGH==C:\FDOS\command.com .....

POZNÁMKA má to tedy být: 1234?
fdconfig.sys

Nic jiného neměňte, jelikož tento řádek zavísí od vašeho nastavení instalace.

Uložte a opusťte "edit":

[alt]+[f]

Jakmile se vrátíte do příkazové řádky, můžete opustit qemu.

Otestujte, že je qemu schpno zavést USB disk.

qemu -hda /dev/sdb -boot c

Váš USB disk je nyní zaváděníschopný a obsahuje plnou instalaci FreeDOSu o velikosti 5.4 MB. Opravdu byste měli zavádět bez použití jakýchkoliv ovladačů (volba v menu 4), načtení souborů himem.sys a emm386 se může plést s vámi načítanými programy!:

Aktualizace BIOSu

Za předpokladu, že váš počítač běží, vsuňte váš FreeDOS USB disk, připojte ho a stáhněte soubory BIOSu, které potřebujete, tak, jak je doporučeno výrobce vaší základní desky, na USB disk s FreeDOSem, pak ho odpojte.

Vypněte váš počítač, vsuňte FreeDOS USB disk, zapněte počítač a váš USB disk bude zaveden s FreeDOSem. Následujte procedury vašeho výrobce základní desky/BIOSu.

Obsah naposledy revidován 14/08/2010 0100 UTC