[问题]关于不支持从usb存储设备启动的机器

启动讨论 grub/grub2/syslinux/grub4dos/Lilo
回复
头像
muzuiget
帖子: 1097
注册时间: 2007-12-31 14:57

#16

帖子 muzuiget » 2008-06-03 12:49

grub4dos有时是能识别出usb设备的,进入grub4dos命令行,输入

代码: 全选

cat (hd
然后按TAB键,看看是不是有hd1,如果有,表示能识别。

如果不行,我还有个思路,用光盘装个freedos,加在usb驱动,然后运行grub.exe再引导usb的内核
ubuntu起到一半就死掉了
去掉quite splash参数看看输出信息啊,可能找不到根分区。
头像
hethe
帖子: 3666
注册时间: 2005-08-01 9:14

#17

帖子 hethe » 2008-06-03 13:11

efi未必有前途的,現在就只有苹果和intel再强推。
很可能gpl的Linux BIOS才是发展方向。
Gedanken ohne Inhalt sind leer .Anschauungen ohne Begriffe sind blind.
billbear
帖子: 3681
注册时间: 2008-05-03 23:42

#18

帖子 billbear » 2008-06-03 13:26

bean 写了:你MacBook的固件是64位还是32位的?
cpu 是64位的,但是 efi 应该是 efi 1.1, 我想是32位
关于 intel mac 上移动硬盘引导bios操作系统曾经有一个很长的没有结果的帖子
http://ubuntuforums.org/showthread.php?t=510030
其中确实有人坚持说他们可以从移动硬盘启动ubuntu,但是没有得到确证。也许某些型号的mac确实有这个功能,但是很多人认为他们很可能只是把grub和某些启动文件留在了内置硬盘里。他们的步骤不可在别人的机器里重复,大部分人都认为他们还不能实现纯粹的移动硬盘启动。最后随着ubuntuforums apple的改版,这篇帖子被放到归档里石沉大海了。
我现在在内置硬盘里留着一个/boot,我确实希望干掉它...
bean
帖子: 238
注册时间: 2008-06-03 12:25

#19

帖子 bean » 2008-06-03 13:39

你如果感兴趣的话,可以帮忙测试一下grub2的efi。理论上可以启动的,不过可能有点小问题。

另外,你可以在OS X里装个rEFIt 0.11,重启后菜单里会有About rEFIt一项,点进去就可以看到固件的信息了。
billbear
帖子: 3681
注册时间: 2008-05-03 23:42

#20

帖子 billbear » 2008-06-03 14:09

bean 写了:你如果感兴趣的话,可以帮忙测试一下grub2的efi。理论上可以启动的,不过可能有点小问题。

另外,你可以在OS X里装个rEFIt 0.11,重启后菜单里会有About rEFIt一项,点进去就可以看到固件的信息了。
我还真没到About rEFIt 里头看过。 Here you go:
EFI Revision 1.10
Platform: x86(32bit)
Firmware: Apple 4096.01

grub2 efi 我试过一次,结果得到一个 grub rescue 命令行, 什么也干不了,又没有人指导我,自己瞎摸了一阵放弃了。开发者说过他们只在一台mac mini 上测试过,皮体。 我想 grub2 离能用还有一段距离。
elilo也瞎摸了两下不了了之。
billbear
帖子: 3681
注册时间: 2008-05-03 23:42

#21

帖子 billbear » 2008-06-03 14:16

hethe 写了:efi未必有前途的,現在就只有苹果和intel再强推。
很可能gpl的Linux BIOS才是发展方向。
很可能。
但是grub2是要通吃的,所以我不担心。他不是连yaboot也要吃掉吗?
又但是,等grub2等得我都泄了
billbear
帖子: 3681
注册时间: 2008-05-03 23:42

#22

帖子 billbear » 2008-06-03 14:21

muzuiget 写了:grub4dos有时是能识别出usb设备的,进入grub4dos命令行,输入

代码: 全选

cat (hd
然后按TAB键,看看是不是有hd1,如果有,表示能识别。
我不行。皮体。 :cry:
billbear
帖子: 3681
注册时间: 2008-05-03 23:42

#23

帖子 billbear » 2008-06-03 14:34

muzuiget 写了:
如果不行,我还有个思路,用光盘装个freedos,加在usb驱动,然后运行grub.exe再引导usb的内核
ubuntu起到一半就死掉了
去掉quite splash参数看看输出信息啊,可能找不到根分区。
我就是用的freedos来着,不过我运行的是linld,splash 我也去掉了:
linld image=vmlinu~1.24- initrd=initrd~1.24- "cl=root=UUID=8669e508-4db7-4156-8185-3ac305d1a871 ro"

不久死掉,就是你说的找不到根分区,我就奇怪了,内核都起来了,怎么找不到呢,不知道为什么。

你的想法改天试试,不过我怀疑dos能否把usb驱动传给grub,如果在freedos下又起来grub,可能dos的usb驱动就白加载了,grub很可能还是找不到usb。

谢谢分享思路。
bean
帖子: 238
注册时间: 2008-06-03 12:25

#24

帖子 bean » 2008-06-03 14:47

试一下我最新编译的版本:

http://grub4dos.sourceforge.net/grub2/grub.elf

如果你用rEFIt作为主启动管理器的话,直接把它拷贝到根目录或者/efi/grub/目录就可以了,重启后就可以在菜单里选择grub了。
头像
ptptptptptpt
帖子: 3711
注册时间: 2006-09-19 18:16

#25

帖子 ptptptptptpt » 2008-06-03 17:35

哈,bean 到啦,我谨代表我个人热烈欢迎一下~~ :D :D

请允许我小小介绍下,bean,grub4dos 的主要维护者之一,grub2 热心贡献者,尤其值得一提的是,他撰写并完善了 grub4dos/grub2 中的 ntfs 文件系统代码

billbear 兄不是上帝,但 bean 却可能是 the one :D
上次由 ptptptptptpt 在 2008-06-03 17:49,总共编辑 1 次。
头像
ptptptptptpt
帖子: 3711
注册时间: 2006-09-19 18:16

#26

帖子 ptptptptptpt » 2008-06-03 17:43

billbear 写了:
muzuiget 写了:
如果不行,我还有个思路,用光盘装个freedos,加在usb驱动,然后运行grub.exe再引导usb的内核
ubuntu起到一半就死掉了
去掉quite splash参数看看输出信息啊,可能找不到根分区。
我就是用的freedos来着,不过我运行的是linld,splash 我也去掉了:
linld image=vmlinu~1.24- initrd=initrd~1.24- "cl=root=UUID=8669e508-4db7-4156-8185-3ac305d1a871 ro"

不久死掉,就是你说的找不到根分区,我就奇怪了,内核都起来了,怎么找不到呢,不知道为什么。

你的想法改天试试,不过我怀疑dos能否把usb驱动传给grub,如果在freedos下又起来grub,可能dos的usb驱动就白加载了,grub很可能还是找不到usb。

谢谢分享思路。
启动 freedos,加在usb驱动,然后运行grub.exe再引导usb的内核 这一思路已被证明是行不通的,

又:我前面说的 “在光盘中刻一个小型linux,启动后认到usb设备后,运行那个grub程序,进一步加载 u盘中的内核和initrd ” 也是行不通的 :(

这里正在讨论其他可能,有兴趣可以关注 http://bbs.znpc.net/viewthread.php?tid= ... a=page%3D1
billbear
帖子: 3681
注册时间: 2008-05-03 23:42

#27

帖子 billbear » 2008-06-03 19:22

bean:
真把大师引来了。欢迎欢迎
我试了你的grub.elf ,我把它改名为grub.efi 以后放在OS X的根下,在 refit 里头起来了。
我这样写了 grub.cfg, 试着引导内置硬盘里的linux


menuentry "test"
{
set root=(hd0,8)
linux /boot/vmlinuz-2.6.24-16-generic root=/dev/sda9 ro
initrd /boot/initrd.img-2.6.24-16-generic
}


但是他说,
you need to load the kernel first

我的lin是reiserFS,我想可能他没有reiser的模块,我把vmlinuz和initrd拷到FAT32分区里,改了grub.cfg,还是一样
请问grub.cfg应该怎么写
我的磁盘是GPT,也许还没有做GPT支持?
另外,我把移动硬盘插上后,好像还认不到
在移动硬盘没有插上的时候,
ls
(hd0) (hd0,1)(hd0,2)........(hd0,10)(cd0)
插上以后
ls
(hd0)(hd0,1)(hd0,5)
error:out of disk
上次由 billbear 在 2008-06-03 19:50,总共编辑 1 次。
bean
帖子: 238
注册时间: 2008-06-03 12:25

#28

帖子 bean » 2008-06-03 19:44

你在grub命令行里,手动输入ls命令,这样可以列出所有的分区,看看有没有u盘。还有一点,grub2的分区和Linux一样,从1开始算的。因此/dev/sda9应该是 (hd0,9) 。如果u盘在的话,也可能是(hd1,9)。

刚才又传了一个新的版本,名字改过来了:

http://grub4dos.sourceforge.net/grub2/grub.efi

里面包含的模块:

分区:gpt和mbr
文件系统:fat ext2 ntfs reiserfs xfs hfsplus iso9660
命令: ls, search和loopback
上次由 bean 在 2008-06-03 19:57,总共编辑 1 次。
billbear
帖子: 3681
注册时间: 2008-05-03 23:42

#29

帖子 billbear » 2008-06-03 19:52

我把移动硬盘插上后,好像还认不到
在移动硬盘没有插上的时候,
ls
(hd0) (hd0,1)(hd0,2)........(hd0,10)(cd0)
插上以后
ls
(hd0)(hd0,1)(hd0,5)
error:out of disk
billbear
帖子: 3681
注册时间: 2008-05-03 23:42

#30

帖子 billbear » 2008-06-03 19:57

bean 写了:
还有一点,grub2的分区和Linux一样,从1开始算的。因此/dev/sda9应该是 (hd0,9) 。如果u盘在的话,也可能是(hd1,9)。
你的意思是,如果u盘在,u盘会被列为(hd0,x),而内置硬盘反而是(hd1,x)?
回复