[问题]关于不支持从usb存储设备启动的机器
- ptptptptptpt
- 帖子: 3711
- 注册时间: 2006-09-19 18:16
-
- 帖子: 3681
- 注册时间: 2008-05-03 23:42
bean:
今天我到少妇街下载了官方的elilo, 并根据您在100楼的提示做了
少妇街上有3个efi,结果分别是
Error: Unsupported while loading elilo-3.8-ia64.efi
Error: Unsupported while loading elilo-3.8-x86_64.efi
Error:Load Error returned from elilo-3.8-ia32.efi
我想elilo主要是给ia64,ia32开发的,在macbook上可能要重新编译
而上一次我用的e.efi,我想是从mactel-linux.org上下载的,为mac重新编译过
所以,也许我需要自己编译,过一阵子再说,呵呵
今天我到少妇街下载了官方的elilo, 并根据您在100楼的提示做了
少妇街上有3个efi,结果分别是
Error: Unsupported while loading elilo-3.8-ia64.efi
Error: Unsupported while loading elilo-3.8-x86_64.efi
Error:Load Error returned from elilo-3.8-ia32.efi
我想elilo主要是给ia64,ia32开发的,在macbook上可能要重新编译
而上一次我用的e.efi,我想是从mactel-linux.org上下载的,为mac重新编译过
所以,也许我需要自己编译,过一阵子再说,呵呵
-
- 帖子: 3681
- 注册时间: 2008-05-03 23:42
- ptptptptptpt
- 帖子: 3711
- 注册时间: 2006-09-19 18:16
-
- 帖子: 238
- 注册时间: 2008-06-03 12:25
呵呵,看来elilo的兼容性还没有grub好噢~~~billbear 写了:bean:
今天我到少妇街下载了官方的elilo, 并根据您在100楼的提示做了
少妇街上有3个efi,结果分别是
Error: Unsupported while loading elilo-3.8-ia64.efi
Error: Unsupported while loading elilo-3.8-x86_64.efi
Error:Load Error returned from elilo-3.8-ia32.efi
我想elilo主要是给ia64,ia32开发的,在macbook上可能要重新编译
而上一次我用的e.efi,我想是从mactel-linux.org上下载的,为mac重新编译过
所以,也许我需要自己编译,过一阵子再说,呵呵
另外,framebuff的问题基本上已经解决了,不过有些参数是需要手动获得的。我现在研究有没有自动获得的方法。
-
- 帖子: 238
- 注册时间: 2008-06-03 12:25
-
- 帖子: 3681
- 注册时间: 2008-05-03 23:42
由于讨论过程里都是调试信息,后来我们就用站内短信联系而不在这里占用版面了。
我总结一下目前的进展:
1. 如果从 efi 引导:
ubuntu 的话要等 8.10 的内核,如果你愿意当小白鼠的话可以现在就装。
fedora 的内核已经可以了。
2. 可以用 pt 的方法做一张带 kexec 的预引导的 linux 启动光盘,他的 linux 内核起来以后认到 usb 设备,然后 kexec 换 usb 设备上的内核,但是有时会掉进 busybox,原因不明。
3. 可以做一张带 usb 驱动的dos 启动光盘,在 dos 命令行下用 linld 引导 usb 设备上的linux,但是你的usb存储设备上要保留一个fat分区并且在这里保存 /boot 的一份拷贝,并且 dos 的 usb 驱动可靠性值得怀疑。
4. 可以考虑68楼提到的PLoP的未来版本。
(2,3,4提到的启动光盘我是打算量产在装 linux 的 u 盘里的,如果是移动硬盘,就需要一张真正的光盘,我想你也不会考虑;由于量产以后我的 u 盘剩下的部分不是 usb-hdd 格式,本身失去了从 usb-hdd 引导的可能性,就需要从量产光盘引导的绝对可靠性,由于2,3,4都没有绝对可靠性,不能保证每一台 PC 和 MAC 都能引导,所以已经放弃量产。)
5. 如果你不介意在内置硬盘里保留 /boot 的一份拷贝,启动外置硬盘上的 linux 本来是很简单的,只是这严格说来不算是纯粹从外置硬盘启动,并且升级了内核以后要更新内置硬盘里 /boot 的拷贝。
所以,如果是针对 macbook,1的方法应该已经可以实现,至少 bean 大侠已经实现,我还没有空测试,但我想是没有问题的,过几天测试一下;如果针对其它不能从移动硬盘启动的pc bios,只好用5的方法,或者把内核直接刻在引导光盘里,但是光盘要随着内核而更换,不能像 2,3,4的愿望那样用一张不变的光盘--其实还可以有一个想法:
(6). 做一张 grub2 (MBR分支而非EFI的) 启动光盘。这个将来要请教 bean 大侠的。
我总结一下目前的进展:
1. 如果从 efi 引导:
ubuntu 的话要等 8.10 的内核,如果你愿意当小白鼠的话可以现在就装。
fedora 的内核已经可以了。
2. 可以用 pt 的方法做一张带 kexec 的预引导的 linux 启动光盘,他的 linux 内核起来以后认到 usb 设备,然后 kexec 换 usb 设备上的内核,但是有时会掉进 busybox,原因不明。
3. 可以做一张带 usb 驱动的dos 启动光盘,在 dos 命令行下用 linld 引导 usb 设备上的linux,但是你的usb存储设备上要保留一个fat分区并且在这里保存 /boot 的一份拷贝,并且 dos 的 usb 驱动可靠性值得怀疑。
4. 可以考虑68楼提到的PLoP的未来版本。
(2,3,4提到的启动光盘我是打算量产在装 linux 的 u 盘里的,如果是移动硬盘,就需要一张真正的光盘,我想你也不会考虑;由于量产以后我的 u 盘剩下的部分不是 usb-hdd 格式,本身失去了从 usb-hdd 引导的可能性,就需要从量产光盘引导的绝对可靠性,由于2,3,4都没有绝对可靠性,不能保证每一台 PC 和 MAC 都能引导,所以已经放弃量产。)
5. 如果你不介意在内置硬盘里保留 /boot 的一份拷贝,启动外置硬盘上的 linux 本来是很简单的,只是这严格说来不算是纯粹从外置硬盘启动,并且升级了内核以后要更新内置硬盘里 /boot 的拷贝。
所以,如果是针对 macbook,1的方法应该已经可以实现,至少 bean 大侠已经实现,我还没有空测试,但我想是没有问题的,过几天测试一下;如果针对其它不能从移动硬盘启动的pc bios,只好用5的方法,或者把内核直接刻在引导光盘里,但是光盘要随着内核而更换,不能像 2,3,4的愿望那样用一张不变的光盘--其实还可以有一个想法:
(6). 做一张 grub2 (MBR分支而非EFI的) 启动光盘。这个将来要请教 bean 大侠的。
-
- 帖子: 238
- 注册时间: 2008-06-03 12:25
从efi启动需要留意的问题,可以参考我在grub2 wiki上写的文章:
http://grub.enbug.org/TestingOnMacbook
最新的efi处理代码已经在grub2 svn上了,可以下载来编译。怕麻烦的话,也可以使用我预先编译的版本:
http://grub4dos.sourceforge.net/grub2/grub.efi.1
使用时改名为grub.efi就行了。
http://grub.enbug.org/TestingOnMacbook
最新的efi处理代码已经在grub2 svn上了,可以下载来编译。怕麻烦的话,也可以使用我预先编译的版本:
http://grub4dos.sourceforge.net/grub2/grub.efi.1
使用时改名为grub.efi就行了。
-
- 帖子: 3681
- 注册时间: 2008-05-03 23:42
刚刚在移动硬盘装了 fedora 9 测试了一下 efi grub2 从 usb 引导,成功了。
过程是,首先在移动硬盘装好 fedora,然后下载楼上 bean 的 grub.efi,放在移动硬盘的一个 fat 分区根目录,然后在这个 fat 分区写一个 grub.cfg,基本是按照 fedora 的 /boot/grub/grub.conf (就相当于 ubuntu 的 menu.lst) 以 grub2 的语法改写一下,另外加上video=efifb agp=off :
menuentry "Fedora (2.6.25-14.fc9.i686)"
{
set root=(hd1,3)
linux /boot/vmlinuz-2.6.25-14.fc9.i686 ro video=efifb agp=off root=UUID=c5d84243-ee39-41ad-9416-d0bab75dffe0 rhgb quiet
initrd /boot/initrd-2.6.25-14.fc9.i686.img
}
在 set root= 这里注意 grub2和 grub legacy的不同,分区是从1算起的。
然后,在/etc/modprobe.d/blacklist里加入
blacklist agpgart
blacklist intel_agp
然后,在/etc/X11/xorg.conf,Device一段里,加入driver:
Section "Device"
Identifier "Configured Video Device"
Driver "fbdev"
EndSection
就可以了。
在这期间 bean 做了大量的程序调试工作,我是他遥控的远程小白鼠。修成正果了。
过程是,首先在移动硬盘装好 fedora,然后下载楼上 bean 的 grub.efi,放在移动硬盘的一个 fat 分区根目录,然后在这个 fat 分区写一个 grub.cfg,基本是按照 fedora 的 /boot/grub/grub.conf (就相当于 ubuntu 的 menu.lst) 以 grub2 的语法改写一下,另外加上video=efifb agp=off :
menuentry "Fedora (2.6.25-14.fc9.i686)"
{
set root=(hd1,3)
linux /boot/vmlinuz-2.6.25-14.fc9.i686 ro video=efifb agp=off root=UUID=c5d84243-ee39-41ad-9416-d0bab75dffe0 rhgb quiet
initrd /boot/initrd-2.6.25-14.fc9.i686.img
}
在 set root= 这里注意 grub2和 grub legacy的不同,分区是从1算起的。
然后,在/etc/modprobe.d/blacklist里加入
blacklist agpgart
blacklist intel_agp
然后,在/etc/X11/xorg.conf,Device一段里,加入driver:
Section "Device"
Identifier "Configured Video Device"
Driver "fbdev"
EndSection
就可以了。
在这期间 bean 做了大量的程序调试工作,我是他遥控的远程小白鼠。修成正果了。
-
- 帖子: 106
- 注册时间: 2008-02-01 17:18
照各位的方法测试了一下, 可惜还是不成功, 内核和initrd以及usb驱动都成功加载,但是还是没有办法mount分区, 出错信息如下:
...........................................................
Tring to resume from /dev/sdb3
Unable to access resume device /dev/sdb3
Creating root device
Mounting root file system
mount: could not find filesystem '/dev/root'
Setting up new root fs
setup root: moving /dev/failed : No such file or directory
no fstab , sys , mounting internal defaults
setup root : error mounting /proc : No such file or directory
error mounting /sys : No such file or directory
Mount failed for selinuxfs on /selinux : No such file or directory
Switchroot to new root and running init
unmounting old /dev
unmounting old /proc
unmounting old /sys
switchroot: mount failed : No such file or directory
Boot has failed
这是我移动硬盘的分区情况, 用的是MBR格式
Device Boot Start End Blocks Id System
/dev/sdb1 1 131 1048576 b W95 FAT32
/dev/sdb2 * 132 156 200812+ 83 Linux
/dev/sdb3 157 287 1052257+ 82 Linux swap / Solaris
/dev/sdb4 288 19457 153983025 5 Extended
/dev/sdb5 288 4111 30716248+ 83 Linux
/dev/sdb1是放grub.efi的fat分区, /dev/sdb2是/boot(mount point), /dev/sdb3是swap分区, /dev/sdb5是/(mount point)
grub.cfg的文件内容如下
menuentry "Linux" {
# Set the root device for Linux.
root=(hd1,2)
# Load the loader.
linux /vmlinuz-2.6.25-14.fc9.i686 ro video=vesafb agp=off root=/dev/sdb5 rhgb
initrd /initrd-2.6.25-14.fc9.i686.img
}
/etc/X11/xorg.conf和/etc/modprobe.d/blacklist也修改过了
我的macbook是intel core2duo 2.0GHZ, refit版本是0.11, EFI固件的版本是 1.10
...........................................................
Tring to resume from /dev/sdb3
Unable to access resume device /dev/sdb3
Creating root device
Mounting root file system
mount: could not find filesystem '/dev/root'
Setting up new root fs
setup root: moving /dev/failed : No such file or directory
no fstab , sys , mounting internal defaults
setup root : error mounting /proc : No such file or directory
error mounting /sys : No such file or directory
Mount failed for selinuxfs on /selinux : No such file or directory
Switchroot to new root and running init
unmounting old /dev
unmounting old /proc
unmounting old /sys
switchroot: mount failed : No such file or directory
Boot has failed
这是我移动硬盘的分区情况, 用的是MBR格式
Device Boot Start End Blocks Id System
/dev/sdb1 1 131 1048576 b W95 FAT32
/dev/sdb2 * 132 156 200812+ 83 Linux
/dev/sdb3 157 287 1052257+ 82 Linux swap / Solaris
/dev/sdb4 288 19457 153983025 5 Extended
/dev/sdb5 288 4111 30716248+ 83 Linux
/dev/sdb1是放grub.efi的fat分区, /dev/sdb2是/boot(mount point), /dev/sdb3是swap分区, /dev/sdb5是/(mount point)
grub.cfg的文件内容如下
menuentry "Linux" {
# Set the root device for Linux.
root=(hd1,2)
# Load the loader.
linux /vmlinuz-2.6.25-14.fc9.i686 ro video=vesafb agp=off root=/dev/sdb5 rhgb
initrd /initrd-2.6.25-14.fc9.i686.img
}
/etc/X11/xorg.conf和/etc/modprobe.d/blacklist也修改过了
我的macbook是intel core2duo 2.0GHZ, refit版本是0.11, EFI固件的版本是 1.10
-
- 帖子: 3681
- 注册时间: 2008-05-03 23:42
首先,确认一下你的 fc9 可以在其它的 PC 启动。当然,要重新配一下 x,启动进入命令行,先备份一下 xorg.conf -- (当然,如果你原来是在 mac 上直接光盘启动装在移动硬盘,这个 xorg.conf 才有备份的价值)然后运行 setup,选择重配 x, 然后重新启动。
root=(hd1,2) 确认一下对不对,不过内核可以加载的话应该是对的,但还是确认一下。在 grub 菜单按c 进入 grub 命令行,ls 列出你的硬盘和分区。这里有个小 bug,我列出来3个硬盘,
(hd0) (hd0,1) (hd0,5)
(hd1) (hd1,1) (hd1,3) (hd1,5) (hd1,6)
(hd2) ....
其中,(hd2) 是我的内置硬盘,(hd1)是我的移动硬盘,(hd0)并不存在,从 uuid 看出来,(hd0,1) 就是 (hd1,5) ,(hd0,5) 好像是(hd1,6)。
移动硬盘是 MBR 的,(hd1,1)是个 fat主分区,(hd1,2) 是扩展分区,(hd1,3)是装fedora的主分区,(hd1,5)是ubuntu逻辑分区,(hd1,6)是swap逻辑分区
好像是,它把整个扩展分区当作一块硬盘,叫做(hd0)。所以我就只好写(hd1,3)。如果是 gpt 的磁盘好像没有这个问题,移动硬盘会是(hd0),内置反而是(hd1)。
你可以 ls (hd1, 按 tab 看所有分区,进一步 ls (hd1,x)/ 按tab看文件系统,然后可以这样一层一层看文件
然后,
linux /vmlinuz-2.6.25-14.fc9.i686 ro video=vesafb agp=off root=/dev/sdb5 rhgb
最好写uuid,不会错。照着/boot/grub/grub.conf 抄
先试试。
root=(hd1,2) 确认一下对不对,不过内核可以加载的话应该是对的,但还是确认一下。在 grub 菜单按c 进入 grub 命令行,ls 列出你的硬盘和分区。这里有个小 bug,我列出来3个硬盘,
(hd0) (hd0,1) (hd0,5)
(hd1) (hd1,1) (hd1,3) (hd1,5) (hd1,6)
(hd2) ....
其中,(hd2) 是我的内置硬盘,(hd1)是我的移动硬盘,(hd0)并不存在,从 uuid 看出来,(hd0,1) 就是 (hd1,5) ,(hd0,5) 好像是(hd1,6)。
移动硬盘是 MBR 的,(hd1,1)是个 fat主分区,(hd1,2) 是扩展分区,(hd1,3)是装fedora的主分区,(hd1,5)是ubuntu逻辑分区,(hd1,6)是swap逻辑分区
好像是,它把整个扩展分区当作一块硬盘,叫做(hd0)。所以我就只好写(hd1,3)。如果是 gpt 的磁盘好像没有这个问题,移动硬盘会是(hd0),内置反而是(hd1)。
你可以 ls (hd1, 按 tab 看所有分区,进一步 ls (hd1,x)/ 按tab看文件系统,然后可以这样一层一层看文件
然后,
linux /vmlinuz-2.6.25-14.fc9.i686 ro video=vesafb agp=off root=/dev/sdb5 rhgb
最好写uuid,不会错。照着/boot/grub/grub.conf 抄
先试试。
-
- 帖子: 106
- 注册时间: 2008-02-01 17:18