我有一台戴尔 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 可启动 USB
sdb
位于 Ubuntu Live 下 - 未来的 GRUB USB 位于
sdc
Ubuntu Live 下
在 Ubuntu Live USB 上启动:
- 插入新的 USB 并在其上创建一个 ext4 分区使用 grub_bios 标志(那将是
/dev/sdc1
)和一个第二带有“boot”标志的 ext4 分区(/dev/sdc2
GRUB 将在该分区上启动) - 挂载第二个分区以便
grub-install
可以创建/boot/grub
文件:mount /dev/sdc2 /mnt
- 安装 GRUB:
grub-install --boot-directory=/mnt /dev/sdc
- 编辑文件,
/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针对某些特定的视频和无线问题。您的情况可能会出现特殊问题:
- 为什么看不到内置硬盘?这可能是主板故障。USB 启动可能仍可工作(持续一段时间),但即使在托架中也可能看不到硬盘。
- 球童可能会引起 grub 问题。任何对旧 HP 球童的引用都会导致 grub 挂起一分钟。grub 中对球童的引用不起作用,尽管从另一个根运行时球童可以作为额外的存储正常工作。