我总是随身带着一个钥匙扣 USB 驱动器,不久前我注意到 Ubuntu 可以轻松安装在它上面。我成功地用这个驱动器为其他人测试了他们的硬件,从死机的 Windows 安装中复制文件,或者只是在旅行时在安全的操作系统中检查我自己的电子邮件。
到目前为止,这种方法效果很好,但并非每次都有效。有些硬件会识别 USB 驱动器,但拒绝从中启动。在其他情况下,系统可以启动,但存在严重的性能/显示问题,这可能导致系统无法使用。
我尝试编制一份有助于提高此驱动器成功启动和操作率的所有兼容性选项的列表,但我不确定还可以采取什么措施来防止出现问题,或者在这种情况下通常还有哪些其他有用的选择。到目前为止,我记下了以下几点:
使用原始 Ubuntu ISO,而不是更精简的 Xubuntu,因为 Xubuntu 在某些情况下无法正确加载笔记本电脑的 WiFi 驱动程序,而原始 Ubuntu 可以。
使用 64 位 ISO(针对欧洲/北美),因为目前在这些地区更有可能遇到 64 位处理器,并且一些较新的 UEFI 版本无法启动 32 位 Ubuntu 系统,而可以启动 64 位系统。
在驱动器上保留一些空间来创建交换分区,因为有些机器的 RAM 可能较低(或低于应有的水平),而且非常慢的 USB 交换仍然比完全崩溃要好。
将
nomodeset
参数输入到中/etc/default/grub
,因为系统将使用许多不同的 GPU 启动,这应该可以防止显示问题。
以及另外两个小提示:
某些 Windows 10 安装无法完全关闭并阻止进入 BIOS/启动菜单。如果发生这种情况,请先启动 Windows 系统,然后尝试使用此
Restart
选项而不是正常关机,或者按住Shift
并按下Shutdown
以绕过这些 Windows/UEFI 启动机制。通过 USB 进行更新需要很长时间(按照 Ubuntu 的标准),尤其是在 USB 2.0 上,因此我建议禁用所有自动更新,并在有足够时间/带宽时手动更新系统。
在这种情况下还有其他有益的设置选项吗?
您是否建议其他内核参数或系统配置,以增加兼容性,同时又不限制这种最小安装的使用?
答案1
完全安装至 USB - BIOS/UEFI
也许一台计算机使用 UEFI 和较旧的计算机 BIOS。如果您希望 USB 驱动器能够从多台计算机启动,则 BIOS 和 UEFI 均可:
使用韓國在安装程序 USB(2GB 或更大)上制作 Live 系统。
使用韓國使用默认设置在目标 128GB USB 上创建持久系统,持久性约为 25GB(剩余的 NTFS 分区用作 Windows 可访问数据分区)。
- mkusb 完成后,立即打开 GParted 并删除 sdx4(ISO9660 分区)并将 sdx5 扩展到恢复的空间,sdx 是目标驱动器的设备名称。
在继续操作之前,拔下或移除硬盘(可选但推荐,在 UEFI 模式下强烈推荐)。
启动安装程序驱动器,选择尝试。
插入目标驱动器
开始安装 Ubuntu...
选择其他。
选择 sdx5(在目标驱动器上),然后单击“更改”。
- 选择使用为:ext4,格式和挂载点:/。
不要触碰任何其他分区(除非添加 /home 分区)。
选择 sdx5 作为引导加载程序安装设备。
完成安装。
从 sdx5/boot/grub 复制 grub.cfg 并粘贴到 sdx3/boot/grub,覆盖现有的 grub.cfg 文件。
启动目标驱动器并运行 sudo update-grub 将所有驱动器添加到启动菜单。
在 18.04 之前的安装中,不要安装任何专有驱动程序(例如 Nvidia)。
答案2
多重启动以实现更高的兼容性。
使您的驱动器与更多计算机更具可比性的第二种方法是按照上面的建议创建一个驱动器,然后将扩展分区分成几部分(在本例中为 sdb5)。
然后,您可以在一个部分上安装 Ubuntu,并在其他部分上安装较轻版本的“buntu”。
将 sdb5 划分为与操作系统相同的多个 ext4 分区。每个分区的大小应为 8GB 左右或更大。
启动 Live mkusb 安装程序并插入目标驱动器。
在分区时选择“其他”。
选择 sdb5 作为 /。
将引导加载程序安装到 sdb5。
不要选中所有其他分区的格式框。
对 sdb6、sdb7 等以及您选择安装的操作系统重复此操作。
最后一次安装后,从 sdx6/boot/grub 剪切 grub.cfg 并粘贴到 sdx3/boot/grub,覆盖现有的 grub.cfg 文件。
启动闪存驱动器并执行更新 grub。这会将所有操作系统添加到 grub。
如果愿意的话,你可以添加一些 OS ISO:
在 NTFS 分区 sdb1 中创建一个名为 isos 的文件夹。
添加一些 ISO。
编辑 sdb3/boot/grub 添加类似以下内容的菜单项:
menuentry "xubuntu-18.04.1-desktop-amd64 Partition 6" { set isofile="/isos/xubuntu-18.04.1-desktop-amd64.iso" set root='(/dev/sda,msdos2)' search --no-floppy --fs-uuid --set=root XXXX-XXXX loopback loop ($root)$isofile linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject initrd (loop)/casper/initrd.lz }
将第六个(第七个和第八个)分区的 UUID 替换为 XXXX-XXXX
对于某些版本,vmlinuz 可能需要是 vmlinuz.efi。
如果需要,每个 ISO 都可以有自己的 casper-rw 和 home-rw 持久文件,但由于您需要向每个菜单项添加“持久路径”,因此它会变得有点复杂。