我使用 pendrivelinux.com 将 Ubuntu 安装到 USB 密钥上。我现在需要启动笔式驱动器,但 BIOS 不支持此功能。我仍然可以在没有 X 支持的情况下直接在计算机上启动到 Linux(损坏的 X 是我想从笔式驱动器启动以重新安装的原因之一)。是否有某种方法可以从正在运行的 linux 安装中启动 USB 密钥,或以其他方式执行此操作?
在 grub 菜单中添加(通过 USB 支持)plop 启动管理器- Ubuntu 12.04 。(控制台模式)
这个答案基于Ubuntu Greek Community 的教程
现在,该过程在桌面环境中是最简单的,但对您来说,因为您必须干扰控制台模式,所以会稍微困难一些。如果您注意并遵循步骤,我相信您会成功。
通过 wget 下载 Plop 启动管理器
wget "download.plop.at/files/bootmngr/plpbt-5.0.14.zip" -O ~/Downloads/plpbt-5.0.14.zip
Run Code Online (Sandbox Code Playgroud)
通过 7z 提取。如果您没有该软件包,请p7zip-full
通过 apt-get 安装。
cd Downloads && 7z e plpbt-5.0.14.zip
Run Code Online (Sandbox Code Playgroud)
从文件夹中复制Linux
这两个文件plpbt.bin
并plpcfgbt
放在 /boot 中。
sudo cp ~/Downloads/plpbt-5.0.14/Linux/plpbt.bin /boot/
sudo cp ~/Downloads/plpbt-5.0.14/Linux/plpcfgbt /boot/
Run Code Online (Sandbox Code Playgroud)
现在对你来说是困难的部分(因为你没有图形环境,我不知道任何其他方法)。您必须记下/boot/grub/grub.cfg
文件中的一些行。最简单的方法(IMO)是移动高清照片,但如果您更喜欢传统方式,则可以使用纸和铅笔。
打开文件
sudo nano /boot/grub/grub.cfg
Run Code Online (Sandbox Code Playgroud)
找到(使用箭头键向下滚动)Ubuntu 条目。它将开始像
menuentry 'Ubuntu, with Linux 3.2.0-XX-generic-.....`
Run Code Online (Sandbox Code Playgroud)
注意这3行
insmod ext2
set root='(hdX,msdosX)'
search --no-floppy --fs-uuid --set=root XXXXXXXXXXXXXX
Run Code Online (Sandbox Code Playgroud)
将 X 替换为您的实际数字。Ctrl使用+关闭文件X
现在打开另一个文件,您必须在其中输入这些行和另一行。这里需要root权限
sudo nano /etc/grub.d/40_custom
Run Code Online (Sandbox Code Playgroud)
在此文件的末尾添加您之前记下的行以及一个更重要的行
重要的一行是 linux16 /boot/plpbt.bin
,不要忘记括号。
里面内容的例子40_custom
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
menuentry "Plop Bootmanager" {
insmod ext2
set root='(hdX,msdosX)'
search --no-floppy --fs-uuid --set=root XXXXXXXXXXXXXXXXXXXXX
linux16 /boot/plpbt.bin
}
Run Code Online (Sandbox Code Playgroud)
Ctrl使用+X然后Y(es)然后保存文件ENTER
终于跑了
sudo update-grub
Run Code Online (Sandbox Code Playgroud)
插入 USB 闪存驱动器,重新启动并从 Grub 菜单中选择 plop boot manager,然后选择 USB。