我有一个 USB 设备,我试图以具有 2 个分区的方式创建它:一个用于实时 Linux 光盘,另一个用于文档存储。
我使用 gparted 创建了分区,并将启动标志设置为我想要用作实时光盘的分区。现在,我有一个像这样的USB:
Disk /dev/sdc: 14.6 GiB, 15623782400 bytes, 30515200 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xc3072e18
Device Boot Start End Sectors Size Id Type
/dev/sdc1 8439808 30515199 22075392 10.5G 83 Linux
/dev/sdc2 * 51200 8439807 8388608 4G b W95 FAT32
然后我用dd
flash 了一个 Ubuntu iso/dev/sdc2
sudo dd if=/dev/shm/ubuntu-17.04-desktop-amd64.iso of=/dev/sdc2 bs=4M
当光盘闪存到 USB 驱动器时,我尝试从笔记本电脑启动,但显示“未找到操作系统”。当我尝试使用qemu
/时kvm
,它显示内核恐慌,如下所示:
我怎样才能正确地做到这一点?
答案1
您收到了找不到运作系统错误,因为通过将 ISO 写入磁盘分区而不是整个磁盘,您会无意中没有将引导加载程序写入磁盘的 MBR 间隙。而且......显然 PC 并不关心启动标志。
我看到两个可能的解决方案,但我必须说,我真的只是从我的[审查]中取出这个。
对磁盘进行分区后 dd
ISO
这个当中最好的部分解决方案是你会很快知道它是否可行。
dd
将 ISO 复制到整个 USB 磁盘- 使用分区工具检查U盘是否有分区。如果您看到分区,您可能可以为加密卷添加一个分区。
添加引导加载程序以链式加载到分区中。
这里的想法是在 USB 磁盘的 MBR 间隙中添加一个引导加载程序,并拥有它链负载无论引导加载程序在分区中。链式加载基本上将引导加载程序的功能委托给另一个引导加载程序。我会直接给你 Gentoo 的文档关于这个话题,我认为它相当透彻。
其他
如果以上方法失败,您可以尝试建筑你自己的 Ubuntu ISO,调整它的启动方式。