Обновление BIOS с помощью FreeDOS
Иногда можно или даже нужно обновить BIOS, если изготовитель материнской платы предпринял его улучшение. Установочные программы, как правило, предназначены для запуска под MS-DOS.
Мы представим вариант обновления BIOS в Линуке с флешки или карты памяти micro/mini/SD (с подходящим переходником).
Сперва нужно в BIOS разрешить загрузку с USB и убедиться в том, что BIOS умеет работать с USB-накопителями. Некоторые BIOS распознают USB-приводы для гибких магнитных дисков, дисководы CD-ROM или ZIP-дисководы. Большинство из них подойдёт, но обновление BIOS может оказаться посложнее. Часто бывает что это единственная возможность (в первую очередь это касается нэтбуков).
Вам понадобятся:
- USB-флешка, желательно до 2 ГБ (FAT16 не позволяет видеть более чем 2 ГБ), а установленная базовая FreeDOS (fdbasecd.iso) всё равно использует только 5,8 МБ. FAT16 является рекомендованным форматом, так как FAT32 не во всех BIOS обнаруживается как загрузочный раздел.
- ISO-образ FreeDOS fdbasecd.iso (8MB).
- qemu (apt-get install qemu). Qemu предназначена для установки FreeDOS на флешке. В qemu встроенный BIOS позволяет FreeDOS распознать USB-флешку как обычный жесткий диск, так что Вы можете установить и без прожигания CD с FreeDOS.
Очень важное замечание:
Нельзя монтировать USB-флешку! Будьте внимательны при выборе устройства, все данные на выбранном диске будут удалены без какой-либо возможности восстановления данных, например, на основном жестком диске.
Подключите USB-флешку. Помните! Ёе нельзя монтировать. Проверьте dmesg (последние сообщения, после того, как Вы подключили флешку), в котором написан номер устройства, под которым флешка зарегистрирована в системе. В нашем примере /dev/sdb.
Содержание флешки будет удалено. Вы можете стереть всю флешку, а не только первые 16 МБ, как в примере.
$ 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
Разметка USB-флешки
Самое трудное, скорее всего, это правильно разметить и форматировать флешку.
Установите метки раздела на FAT16 и для флешки размером менее 2 Гб (для лучшей совместимости).
Запустите fdisk для разбивки:
# 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)
Теперь создайте новый раздел:
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
Убедитесь в создании раздела, распечатав таблицу разделов:
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
Установите правильный код для FAT16 '6':
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)
Активируйте новый раздел:
Command (m for help): a Partition number (1-4): 1
Распечатайте новую таблицу разделов на экране и убедитесь что новый раздел активирован:
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
Соханите новую таблицу разделов на Вашей флешке и закончите 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
Форматируйте новый раздел на флешке:
mkfs -t vfat -n FreeDOS /dev/sdb1 exit
Подготовка завершена, т.е. USB-флешка разделена и отформатирована. Теперь можно начинать процесс установки.
Загрузка FreeDOS в qemu
Так как DOS не знаком с понятием USB-накопителей, нужно найти путь, чтобы обмануть FreeDOS выдав её за обыкновенный жёсткий диск. При обычной загрузке эту функцию перенимает BIOS, в нашем же случае мы должны использовать для этой цели qemu:
как пользователь $: qemu -hda /dev/sdb -cdrom /полный/путь/до/fdbasecd.iso -boot d
Комбинация клавиш ctrl-alt переключает мышку и клавиатуру между qemu и хост-системой. Таким образом, можно переключаться с одной рабочей среды на другую и читать следующий шаг в инструкции.
Таким образом, диск с FreeDOS загружается, а USB-флешка распознаётся в качестве основного жёсткого диска (благодаря способности qemu к эмуляции BIOS). Теперь можно выбрать инсталятор в BOOT-меню виртуального FreeDOS:
1) Continue to boot FreeDOS from CD-ROM
1
enter
Затем выберите дефолтную установку 1 или ответьте Yes в случае, если будет задан вопрос.
Инсталятор потребует перезапуска систему, этого пока не надо делать, так как нужно ещё удалить 2 ошибки в FreeDOS: в Boot-меню и mbr. Нажмите клавишу n.
Запись загрузочного сектора на USB-флешку
Ошибочный mbr можно удалить с помощью:
fdisk /mbr 1
Ошибка в меню загрузочного сектора удаляется в новой конфигурации fdconfig.sys при введении команды:
cd \ edit fdconfig.sys
А строчку, начиная с command.com, нужно изменить так:
1234?SHELLHIGH=C:\FDOS\command.com C:\FDOS /D /P=C:\fdauto.bat /K set
(не изменяйте эту команду, а лишь добавьте "1234?" в начало строчки (до SHELLHIGH==C:\FDOS\command.com .....
Имейте в виду, читать это нужно как: 1234?
Ничего больше менять нельзя, так как строчка зависит от настроек системы.
Сохраните и выйдите из "edit":
[alt]+[f]
Вернувшись к командной строке, Вы можете покинуть qemu.
Теперь проводим тест - загружается ли qemu с USB-флешки.
qemu -hda /dev/sdb -boot c
Флешка должна выполнить загрузку и содержит полную версию инсталляции FreeDOS (5,4 MБ), чтобы обновить BIOS. При этом не стоит загружать драйвера (в меню опция 4), himem.sys и emm386 могут навредить работе флеш-устройств!
Обновление BIOS
Вставьте флешку с FreeDOS в работающий компьютер, смонтируйте её и загрузите на неё файлы BIOS (рекомендуемые изготовителем). Затем размонтируйте флешку.
Выключите компьютер, вставьте FreeDOS USB-накопитель. Затем включите компьютер, настройте BIOS так, чтобы компьютер загрузился с USB-накопителя чтобы запустить FreeDOS. После этого, следуйте указаниям изготовителя, BIOS или материнской платы.