2011-10-23 14:14:34 +0000 2011-10-23 14:14:34 +0000
52
52

使用GRUB从USB启动

我朋友的笔记本电脑出了车祸(他没事!)。然而这台笔记本很旧,它是一台宏碁Aspire 1520,CD-ROM驱动器坏了,也没有软驱。

我给他做了一个USB启动之前,我看了一下,发现他的BIOS不能从USB启动。我只有一个GRUB控制台,但他热衷于只安装XP(在USB上),只用来看电影。

是否有可能使用GRUB控制台来访问USB并开始安装Windows?这是一个高难度的任务,但我认为这可能是一个方法,或者试图通过局域网安装,我认为这将无法实现。

答案 (6)

45
45
45
2014-09-13 03:30:00 +0000

下面是一个快速的grub命令的例子,可能只是工作,解释和注意事项如下。

grub2

最可能适用于2010年后的安装。

set root=(hd1,1)
chainloader +1
boot

grub

最有可能适用于 2005 年前的安装。

root (hd1,0)
chainloader +1
boot

对于2005-2010年期间,你的猜测和我的一样好,但如果你使用错误版本的命令,你只会在第一条命令上得到一个无害的语法错误。

选择正确的root

在启动时,grub会探测你的设备并给它们分配编号。所有被分区的设备(硬盘和闪存盘)也会被分配编号。格式是(<deviceName>,<partitionIndex>)。在grub2中,分区索引发生了变化,所以上面的两个例子尽管看上去使用了不同的根,但效果是一样的。

你的第一个设备(hd0)就是刚刚从哪个设备grub加载过来的。在那之后,你通常可以假设所有的内部设备会在你的外部设备之前出现。它们很可能是以hd和一个数字的形式出现。

逗号之后是分区索引。硬盘和拇指驱动器几乎都是分区的,所以你必须选择正确的(而且很可能是唯一的)分区。CD-ROM 通常没有分区。

更多文档。 http://www.gnu.org/software/grub/manual/html_node/Device-syntax.html

选择根分区时,你可以使用Tab键查询设备名称和分区索引。只要打开括号,开始按Tab键就可以看到列表。

14
14
14
2011-10-24 16:34:02 +0000

详解new123456的评论。

USB设备应该被检测为大容量存储设备,并像对待硬盘一样对待。所以,在grub中,输入root (hd(先不要按回车键),然后按一两次tab键,看看Grub能看到哪些硬盘。USB设备如果被识别,可能是hd1。不要指定分区号,只需加一个括号结束。所以这一行将是root (hd1)。然后在这之后,输入以下内容。

chainloader +1
boot

如果还不行,就把root (hd1)改成root (hd1,0),然后再试试。

如果因为某些原因 Grub 看不到 USB 驱动器,请尝试插入 USB CDROM,然后从该处启动。

8
8
8
2014-09-21 20:04:18 +0000

如果BIOS不善于从USB密钥启动,chainloader +1这个东西可能会不起作用(这就是为什么我想使用Grub的原因)。

在这种情况下,https://help.ubuntu.com/community/Grub2/ISOBoot 有一些深奥的魔法,至少对Ubuntu来说是有效的。关键的一点是在识别vmlinuz文件的grub命令上做手脚,传递iso-scan/filename参数。不知怎的,这有助于它找出整个启动文件系统卡在ISO文件中。我不知道它是怎么工作的,但它确实是这样做的。这些是我使用的Grub 2命令(大约)。 /path/to/iso/file标识的是USB密钥。Tab-completion对(fd0,msdos1)行超级有用,对loopback的参数没有用。

2
2
2
2015-05-08 14:44:49 +0000

这不会对你朋友的情况有很大的帮助(除非有一种我不知道的方法可以让plop在设备上首先出现–也许是usb cd-rom,或者usb软驱?),但这是一个非常棒的小程序,它帮助我操纵了一些老机器,在他们的bios不允许的情况下从usb启动。 Plop Boot Manager

1
1
1
2020-02-13 00:41:30 +0000

本来想把这个作为评论留在@Ekevoo或者@Jonathan的帖子里,但是不允许,所以这里是我的用例+解决方案,供可能也会遇到这种情况的人参考。

USB里有一张GPart Live CD安装包,但是我的BIOS因为某些原因不能从里面启动,尽管之前它还能正常工作(之前我通过windows安装CD,这次我通过Ubuntu安装)。在Grub中,我运行了以下命令,结果正常了

set root=(hd0)

这对不同的设备可能不同,我不确定是否有必要。

然后我运行了

chainloader (hd0)/EFI/BOOT/grubx64.efi
boot

其他操作系统的路径可能会不同,但应该有一个类似的文件。绕着Tab找找看。

这就足以让它工作了。

0
0
0
2014-06-27 01:17:34 +0000

如果BIOS本身不允许,你就不能在grub中从usb启动。我曾经不得不在硬盘上设置一种恢复分区,包含win7设置盘内容,安装grub,然后用它来启动win7设置分区,将其安装到硬盘的其他部分。