如何制作可引导硬盘LM分区的U盘引导程序(解决BIOS密码丢失的HP Elitebook Folio 9470m启动故障)
如何制作可引导硬盘LM分区的U盘引导程序(解决BIOS密码丢失的HP Elitebook Folio 9470m启动故障)
兄弟,你的思路太绝了——利用这台HP自动认U盘启动的特性绕开BIOS密码锁,完全可行!我给你两个亲测有效的方案,都是用Linux下常用的引导工具来做,操作起来也不复杂:
方案一:用GRUB2制作通用引导U盘(推荐)
GRUB2是Linux最常用的引导器,兼容性拉满,特别适合你的老HP机器:
- 先准备好你的4G U盘,务必备份里面的所有数据,接下来要格式化。
- 找一台能正常启动的Linux机器(比如用你之前的Live USB临时启动就行),把U盘插进去。
- 打开终端,先搞清楚U盘的设备名,别把系统硬盘搞错了!运行
lsblk,看输出里的设备,比如/dev/sdb(后面不带数字的是整个U盘,带数字的是分区),确认好后再往下走。 - 给U盘做引导分区:
- 先卸载U盘的现有分区(如果有多个就都卸载):
sudo umount /dev/sdb1 - 运行
sudo fdisk /dev/sdb进入分区工具:- 按
o创建新的DOS分区表(MBR) - 按
n新建分区,选「主分区」,分区号1,起始扇区直接按回车用默认,结束扇区也回车用满整个U盘 - 按
a把这个分区标记为可引导(这步很重要!) - 按
w保存设置退出
- 按
- 把分区格式化成FAT32:
sudo mkfs.vfat /dev/sdb1
- 先卸载U盘的现有分区(如果有多个就都卸载):
- 挂载U盘:
sudo mount /dev/sdb1 /mnt - 安装GRUB2到U盘:
这里sudo grub-install --target=i386-pc --boot-directory=/mnt/boot /dev/sdb--target=i386-pc是因为你的HP机器是传统BIOS启动(不是UEFI),必须指定这个架构才能兼容。 - 写GRUB的配置文件:
用文本编辑器创建/mnt/boot/grub/grub.cfg,内容如下:
怎么确认分区信息?在Live环境里挂载你的LM分区,比如set timeout=5 set default=0 menuentry "启动硬盘里的LM系统" { insmod part_msdos insmod ext4 # 如果你的LM分区是ext3就改成ext3,现在大部分都是ext4 set root=(hd1,msdos1) # 这里要注意:hd1是你的内置硬盘,msdos1是LM系统的分区号,可能需要调整 linux /boot/vmlinuz-xxxx-generic root=/dev/sda1 ro quiet splash # 替换成你LM分区里实际的内核文件名,root改成你的LM分区设备名(比如/dev/sda1) initrd /boot/initrd.img-xxxx-generic # 同样替换成实际的initrd文件名 }sudo mount /dev/sda1 /mnt_lm,然后ls /mnt_lm/boot就能看到内核和initrd的具体名字;再用lsblk确认LM分区的设备名,对应到GRUB里的(hdX,msdosY)——比如/dev/sda1就是(hd0,msdos1),如果U盘是hd0的话,内置硬盘就是hd1,开机如果不对可以再调整。 - 卸载U盘:
sudo umount /mnt,拔下来插回你的HP机器,开机就能看到GRUB菜单,选对应的选项就能启动硬盘里的LM了!
方案二:用Syslinux做超轻量引导U盘
如果觉得GRUB太臃肿,Syslinux更小巧,适合小容量U盘:
- 前面的U盘格式化、设置可引导分区的步骤和方案一完全一样,就不重复了。
- 挂载U盘后,安装Syslinux:
sudo syslinux /dev/sdb1 - 在U盘根目录创建
syslinux.cfg文件,内容:DEFAULT boot-lm TIMEOUT 50 PROMPT 0 LABEL boot-lm KERNEL /vmlinuz APPEND root=/dev/sda1 ro quiet splash INITRD /initrd.img - 从你的LM分区的
/boot目录里,把对应的vmlinuz和initrd.img复制到U盘的根目录(最好直接从Live环境里复制,确保版本和系统完全一致)。 - 卸载U盘,测试启动就行。
几个关键注意事项
- 千万千万别搞混设备名!比如把
/dev/sda(系统硬盘)当成U盘操作,那数据就全没了,操作前用lsblk确认三遍。 - 如果开机GRUB提示找不到分区,别慌,在GRUB菜单按
c进入命令行,用ls (hd0,1)/、ls (hd1,1)/这样的命令挨个试,找到有/boot目录的那个就是你的LM分区,然后调整grub.cfg里的set root参数。 - 你的机器是传统BIOS启动,所以别搞UEFI的引导方案,会完全不兼容。
备注:内容来源于stack exchange,提问作者Bernard Decock
相关产品推荐
相关产品推荐

