Opdatering af BIOS med FreeDOS
Opdatering af din maskines BIOS kan enten være et krav eller blot dit personlige valg. Producenten af dit bundkort annoncerer sikkert jævnligt opdateringer til din BIOS, installationsprogrammet til disse tilbydes oftest kun som programmer der kører under MS-DOS.
Det følgende er en metode til at opgrader din BIOS fra USB med linux. Det fungerer med USB nøgler, USB penne og med micro/mini/SD kort (med den tilhørende adapter).
Første opgave er at sikre at din maskines BIOS er indstillet til at tillade opstart fra USB porten, og at den er kompatibel med USB harddiske. Nogle BIOS accepterer USB Floppy drev, CD-ROM drev eller ZIP drev, og selvom disse er brugbare kan det vanskeliggøre implementeringen af opgraderingen. På den anden side kan du jo være tvunget til at gennemføre opgraderingen på denne måde, specielt med bærbare.
Du skal bruge tre ting:
- En USB nøgle, fortrinsvis < 2 GB da FAT16 ikke tillader mere end 2 GB og den basale FreeDOS (fdbasecd.iso) installation fylder kun 5.8 MB. FAT16 er den anbefalede format til formålet, da FAT32 ikke detekteres korrekt som bootable af alle BIOS.
- Et FreeDOS installations medium fdbasecd.iso (8MB).
- qemu (apt-get install qemu), qemu skal bruges til installationsprogrammet; i hurtige træk fungerer det ved at det emulerede qemu BIOS får din USB nøgle til at ligne endnu en almindelig harddisk for FreeDOS, derfor kan du installere som normalt (og uden at skulle brænde FreeDOS CDen).
Dette er kritisk vigtigt: På intet tidspunkt må USB nøglem monteres på nogen måde. Vær overmåde omhyggelig med at vælge den korrekte device node, i modsat fald vil alle data på den forkerte disk blive slettet uden yderligere advarsler, ie din systemdisk!.
Isæt din USB nøgle, husk, du skal ikke montere den. Kontroller dmesg (den sidste meddelelse hvis du lige har sat den i), for at se hvilken device node der blev tildelt din USB nøgle. Lad os antage at det var /dev/sdb .
Ryd din USB nøgle, alt data vil gå tabt, du kan også slette hele nøglen fremfor bare de første 16 MB.
$ su Password: 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
Partitionering af USB nøglen
Korrekt partitionering og formattering af din USB nøgle er sandsynligvis den sværeste del.
Sæt partitionslabel til FAT16, på <2 GB nøgler (for bedre kompatibilitet).
Anvend fdisk til partitionering:
# 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)
Opret nu en partition:
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
Konfirmer opprettelsen af partitionen ved at printe partitionstabellen:
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
Sæt den korrekte partitions label, '6' for 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)
Aktiver den nye (og eneste) partition:
Command (m for help): a Partition number (1-4): 1
Print den nye partitionstabel endnu en gang for at sikre dig at alt er som det skal være, og at partitionen virkeligt blev aktiveret:
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
Skriv den nye partitionstabel til din USB nøgle og afslut 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
Formater din nyoprettede USB partition:
mkfs -t vfat -n FreeDOS /dev/sdb1 exit
Forberedelsesfasen er nu overstået.Du har partitioneret og formatteret USB nøglen, der er ikke mere at gøre og du kan nu gå til installationsprocessen.
Starte FreeDOS op med qemu
Eftersom DOS ikke har den fjerneste ide om USB nøglen, vi skal finde en måde snyde FreeDOS installationsprogrammet, sådan at det tror USB nøglen er endnu en almindelig harddisk, ved live boot sørger systemets BIOS for dette, men her skal vi anvende qemu:
as user$: qemu -hda /dev/sdb -cdrom /path/to/fdbasecd.iso -boot d
ctrl-alt skifter mus og tastatur grab og tillader dig at skifte skrivebord for at genlæse instruktionerne ved de enkelte trin.
Dette booter FreeDOS CDen og mapper USB nøgle enheden som primary master HD (her får qemu's BIOS emulation USB nøglen til at ligne en ordinær harddisk når DOS kigger på den). Vælg installationsprogrammet fra start menuen på den virtualiserede FreeDOS boot:
1) Continue to boot FreeDOS from CD-ROM
1
enter
Vælg standard 1 og/eller vælg Yes når du bliver spurgt.
Installationsprogrammet spørger om du vil genstarte - det skal du ikke gøre endnu! da der lige er et par fejl der skal fikses i FreeDOS installationsprogrammet for mbr og bootmenu. Skriv bogstavet n.
Skriv en bootsector til din USB nøgle
Den første fejl er mbr som rettes ved at skrive:
fdisk /mbr 1
Den anden fejl findes i bootmenuen i din nye fdconfig.sys, kør:
cd \ edit fdconfig.sys
og rediger den linie der starter command.com til:
1234?SHELLHIGH=C:\FDOS\command.com C:\FDOS /D /P=C:\fdauto.bat /K set
(du skal ikke ændre denne kommando, men bare tilføje "1234?" til begyndelsen af linien (før SHELLHIGH==C:\FDOS\command.com .....
OBS det skal være: 1234?
Du skal ikke ændre andet herinde.
Gem og afslut "edit":
[alt]+[f]
Når du er tilbage ved kommandoprompten kan du afslutte qemu.
Kontroller om qemu vil boote fra din USB nøgle.
qemu -hda /dev/sdb -boot c
Din USB nøgle er nu bootable og indeholder en fuld FreeDOS installation på 5.4 MB til at flashe. Du bør starte op uden nogen drivere (menu punkt 4), indlæsning af himem.sys og emm386 filerne kunne påvirke det program du bruger til at flashe din BIOS med!:
Opdatering af BIOS
Hvis vi antager at din maskine er oppe og kører, indsæt da din FreeDOS USB nøgle, monter den og hent BIOS filerne du skal bruge (som anbefalet af producenten af dit bundkort) og gem dem på FreeDOS USB nøglen. Afmonter USB nøglen.
Sluk maskinen, sæt FreeDOS USB nøglen i og tænd strømmen sådan at du booter fra FreeDOS USB nøglen. Følg derefter producentens anvisninger for opdatering af dit bundkortstick.