debian: อัปเดตไบออสด้วย Thumb Drive โดย freedos อาศัย grub2

สมมุติว่าใช้เดเบียนรุ่นตั้งแต่ squeeze ขึ้นไป ซึ่งติดตั้ง grub2 เป็นตัวจัดการการบูตอยู่แล้ว

เตรียมการ

1. ที่ต้องใฃ้คือ Thumb Drive ที่ฟอร์แมตแล้ว (มีข้อมูลอยู่ก็ไม่เป็นไร ใช้เนื้อที่แค่ 1.44M ดิสเก็ตต์แผ่นเดียว โดยไม่ต้องฟอร์แมตใหม่) สมมุติว่าเมื่อเสียบช่อง usb แล้ว เขาจะเมานต์อัตโนมัติไว้ที่ /media/disk

2. ติดตั้งแพคเกจ

$ sudo aptitude install syslinux dosfstools

3. เตรียมไฟล์อัปเดตไบออสจากผู้ผลิตเมนบอร์ดเอาไว้ให้เรียบร้อย ถ้าไฟล์ถูกบีบอัดเป็นไฟล์เดียว ให้แตกออกมาด้วย Archive Manager (File Roller) จะมี 2 ไฟล์ที่ต้องใช้ คือไฟล์ EXE สำหรับการรันไฟล์นึง และไฟล์ข้อมูลไบออสอีกไฟล์นึง

สมมุติถ้าเป็นเมนบอร์ดกิกาไบต์ G31M-ES2L เมื่อแตกไฟล์ที่ดาวน์โหลดออกมาแล้วจะได้ไฟล์ FLASHSPI.EXE และ G31MES2L.F10 ตามลำดับ

4. เอาไฟล์ freedos มา

$ wget http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/1.0/fdboot.img

5. เมานต์ขึ้นมาเอาไว้ที่ /mnt/tmp เพื่อลบไฟล์ที่ไม่ต้องการออก

$ sudo mkdir -p /mnt/tmp
$ sudo mount -o loop fdboot.img /mnt/tmp
$ sudo rm -rf /mnt/tmp/{driver,fdconfig.sys,freedos}

และคัดลอกไฟล์ไบออสเข้าไป

จากตัวอย่างจะเป็นสองไฟล์ข้างต้น ให้ปรับเปลี่ยนเอาตามจริง

$ sudo cp ~/Desktop/FLASHSPI.EXE /mnt/tmp
$ sudo cp ~/Desktop/G31MES2L.F10 /mnt/tmp

6. ถอดการเมานต์ คัดลอกไฟล์ไปยัง Thumb Drive

$ sudo umount /mnt/tmp
$ cp fdboot.img /media/disk

7. คัดลอกไฟล์เคอร์เนลที่ต้องใช้ในการบูตคือ memdisk จากแพคเกจ syslinux และรีบูต

$ cp /usr/lib/syslinux/memdisk /media/disk
$ umount /media/disk
$ sudo shutdown -r now

ขั้นตอนบูต

เมื่อเริ่มเข้า grub2 ให้กด "c" เพื่อเลือกใช้บรรทัดคำสั่ง และพิมพ์คำสั่งดังนี้

set root=(hd1,1)
linux16 /memdisk
initrd16 /fdboot.img
boot

เครื่องจะบูตเข้า freedos ซึ่งเราสามารถแฟลชไบออสด้วยการรันโปรแกรมไบออสที่เราเตรียมการไว้แล้วข้างต้น
(จากตัวอย่าง จะต้องสั่งรันด้วย FLASHSPI.EXE G31MES2L.F10 เป็นต้น)

เมื่อเสร็จแล้ว ก็สามารถบูตเพื่อใช้งานไบออสใหม่ได้เลย

เอามาจาก

update

ล่าสุดใช้แพ็คเกจ flashrom แทนได้แล้ว

ติดตั้ง

# aptitude install flashrom

เก็บรอมเก่า

# flashrom -r OLD.bin

แฟลชรอมใหม่

# flashrom -w NEW.bin

เอามาจาก