jpy*_*ams 3 boot grub2 usb ubuntu-minimal
我正在尝试在 USB 驱动器上安装最小的 Ubuntu 安装(完整安装,而不是实时启动)。但是,安装后,当我尝试从 USB 启动时,出现“缺少操作系统”。
我认为 可能有问题grub
,但我不知道如何解决。我已经安装到 USB 之前搞砸了主grub
文件,所以我不想这样做。
这是fdisk -l
有关 USB 驱动器的输出:
Disk /dev/sdc: 4027 MB, 4027580416 bytes
124 heads, 62 sectors/track, 1023 cylinders, total 7866368 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
Disk identifier: 0x73a571aa
Device Boot Start End Blocks Id System
/dev/sdc1 2048 7616511 3807232 83 Linux
/dev/sdc2 7618558 7864319 122881 5 Extended
/dev/sdc5 7618560 7864319 122880 82 Linux swap / Solaris
Run Code Online (Sandbox Code Playgroud)
此外,根据此输出,我的引导分区可能未标记为可引导。请帮忙!
我遵循了Terrance
的建议,因此 /dev/sdc1 现在被标记为引导分区。但是,驱动器仍然无法启动。
我不是在问如何将 Ubuntu 安装到 USB 驱动器,我是在寻求帮助修复我已经安装了 Ubuntu 的 USB。
Terrance
更新后的答案为我解决了这个问题。请注意,为了让它在我的 USB 上工作,我必须创建一个/boot/extlinux/syslinux.cfg
包含以下内容的文件:
PROMPT 0
TIMEOUT 50
DEFAULT arch
LABEL arch
LINUX ../vmlinuz-4.4.0-45-generic
APPEND root=UUID=[The USB UUID]
INITRD ../initrd.img-4.4.0-45-generic
Run Code Online (Sandbox Code Playgroud)
您可以通过在终端窗口中键入以下内容,在 USB 驱动器的第一个分区上设置引导标志:
sudo parted /dev/sdc set 1 boot on
Run Code Online (Sandbox Code Playgroud)
也可以尝试安装extlinux
和syslinux-common
用于把USB驱动器上的引导文件。从终端输入:
sudo apt install extlinux syslinux-common
Run Code Online (Sandbox Code Playgroud)
安装完成后,插入 USB 驱动器并输入:
sudo mkdir -p /mnt/USB/boot/extlinux
sudo extlinux --install /mnt/USB/boot/extlinux
Run Code Online (Sandbox Code Playgroud)
或任何挂载点到您的 USB 驱动器,例如 /media/username/1001-BAAB/boot/extlinux
然后您应该mbr
使用以下命令将代码安装到 USB 驱动器: 别担心,这不会覆盖 USB 驱动器。
dd if=/usr/lib/EXTLINUX/mbr.bin of=/dev/sdc bs=440 count=1
Run Code Online (Sandbox Code Playgroud)
确保这/dev/sdc
是您的 USB 驱动器。
更多信息可以在这里找到:http : //shallowsky.com/linux/extlinux.html
从 extlinux 的联机帮助页:
NAME
extlinux - install the SYSLINUX bootloader on a ext2/ext3/ext4/btrfs
filesystem
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助!
归档时间: |
|
查看次数: |
6515 次 |
最近记录: |