因为最近本子老出问题,BIOS版本是1.18, 太老了,想更新一下thinkpadt510 BIOS,但由于联想网站上给的只有WINDOWS版和CD版的固件,自己的U盘和光盘都没有,只能硬盘下通过GRUB引导 CD版固件升级了。
UBUNTU的GRUB试了好多办法,都没有引导成功ISO,网上找资料,说可以通过GRUB4DOS引导。
解决思路有了:GRUB2加入引导GRUB4DOS的选项,再通过GRUB4DOS引导ISO文件。
grub4dos目录放入LINUX的一个分区内,我本机分区/dev/sda9挂载在/bak目录上,
grub4dos目录放入/bak/iso/目录下,并把下载的bios ISO文件放入到 /bak/iso/目录下,改名为 tp-bioscd.iso
修改/etc/grub.d/40_custom,加入如下代码
menuentry "GRUB4DOS" {
insmod fat
set root=(hd0,9)
linux /iso/grub4dos/grub.exe
}
2. >sudo update-grub
3. >sudo reboot
4.开机GRUB里多了一行 GRUB4DOS,选中后进入grub4dos界面,选择第2项进入grub4dos命令行模式,输入下面几行
5.grub>map (hd0,8)/iso/tp-bioscd.iso (hd32)
6.grub>map --hook
7.grub>chainloader (hd32)
8.grub>boot
成功启动ISO文件!按提示选择就OK,升级过程会比较慢,不要断电!
注意:在进入到grub4dos后,之前的hd0,9找不到分区,后来我改成了hd0,8成功,不知为什么!
重要提示:升级BIOS本身就有很大风险,尽量不要在不清楚风险的情况下升级!
如有人有办法在GRUB2下直接引导BIOS ISO文件的话,欢迎留言!
=========================================
GRUB2下引导UBUNTU ISO办法,无需提取ISO里的文件
menuentry "ubuntu iso install" --class os {
insmod fat
loopback loop (hd0,9)/iso/ubuntu-14.04.1-desktop-amd64.iso
set root=(loop)
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=/iso/ubuntu-14.04.1-desktop-amd64.iso locale=zh_CN.UTF-8 noprompt noeject splash
initrd (loop)/casper/initrd.lz
}