从 USB 启动,但在辅助硬盘上运行

从 USB 启动,但在辅助硬盘上运行

我有一台戴尔 Vostro 1700,因为它坏了,所以一个朋友送给我的。

经过调查,我发现它不再识别内部硬盘,但可以从 Ubuntu CD 或 USB 闪存驱动器上的 Ubuntu 正常启动。它目前从 USB 运行,但速度非常慢。我有一个光盘盒,用硬盘驱动器代替光驱,但它不被识别为可启动驱动器,所以我可以在硬盘驱动器上安装 Ubuntu,笔记本电脑运行良好,直到我关机。所以我想做的是让它从 USB 闪存驱动器启动,然后从 CD 盒中的硬盘驱动器运行。这可能吗?你会怎么做?

我做这个项目只是为了学习,仅此而已。

答案1

我可以用以下方法解决同样的问题。

我会在文章的其余部分考虑这一点(根据您自己的配置进行更改):

  • 硬盘是sda,启动分区是sda1(映射到(hd1,gpt1)GRUB,(hd0)即 GRUB USB)
  • /dev/sda1包含/boot/vmlinuz内核和/boot/initrd.img磁盘
  • Ubuntu 可启动 USBsdb位于 Ubuntu Live 下
  • 未来的 GRUB USB 位于sdcUbuntu Live 下

在 Ubuntu Live USB 上启动:

  1. 插入新的 USB 并在其上创建一个 ext4 分区使用 grub_bios 标志(那将是/dev/sdc1)和一个第二带有“boot”标志的 ext4 分区(/dev/sdc2GRUB 将在该分区上启动)
  2. 挂载第二个分区以便grub-install可以创建/boot/grub文件:mount /dev/sdc2 /mnt
  3. 安装 GRUB:grub-install --boot-directory=/mnt /dev/sdc
  4. 编辑文件,/mnt/grub/grub.cfg内容如下:
set root=(hd1,gpt1)
linux /boot/vmlinuz root=/dev/sda1
initrd /boot/initrd.img
boot

在 GRUB USB 上重新启动,它应该正在启动您的硬盘。

编辑:根据@kenn 的评论:最好使用分区 UUID 或标签,而不是直接链接到硬盘。UUID(和标签)可在 Ubuntu Live 或 下找到/dev/disk/by-partuuid/dev/disk/by-partlabel然后在 中使用grub.cfg

linux /boot/vmlinuz root=PARTUUID=<partition UUID>

或者:

linux /boot/vmlinuz root=PARTLABEL=<partition label>

答案2

一般来说,可以从 USB 启动并从硬盘运行。安装到硬盘盒磁盘,再次安装到另一个 USB,并在 /boot/grub/grub.cfg 中编辑 USB 的 grub 启动命令以指向硬盘盒磁盘。诀窍是找出当只有一个 USB 时硬盘盒将获得哪个字母。请参阅http://www.linlap.com/dell_vostro_1700针对某些特定的视频和无线问题。您的情况可能会出现特殊问题:

  1. 为什么看不到内置硬盘?这可能是主板故障。USB 启动可能仍可工作(持续一段时间),但即使在托架中也可能看不到硬盘。
  2. 球童可能会引起 grub 问题。任何对旧 HP 球童的引用都会导致 grub 挂起一分钟。grub 中对球童的引用不起作用,尽管从另一个根运行时球童可以作为额外的存储正常工作。

相关内容