西西河

主题:移动硬盘版gentoo快要成了,已经启动grub了,碰到Error 17 (有回必花) -- wsxx

共:💬10 🌺15 新:
全看树展主题 · 分页首页 上页
/ 1
下页 末页
家园 移动硬盘版gentoo快要成了,已经启动grub了,碰到Error 17 (有回必花)

最近找了一台新一点的机器,可设置从USB启动。

这个新的biso,不管你本地硬盘还是USB硬盘,统统都看作scsi设备,所以本地盘成了sda,移动硬盘成了sdb。

但是grub还是把他们分别当作hd0和hd1。

我第一次给gentoo分区3g,结果安装到kde的时候,满了。

第二次重新分区,没有单独分出boot区,一共给了5g空间和250m交换区。

安装起来基本顺利,grub也顺利写入hd1了。

/boot/grub/grub.conf的中root(hd1,2), 启动时出现了这样的信息:

GRUB Loading stage 1.5

GRUB loading, please wait...

Errot 17

我怀疑是从移动硬盘启动之后它成了sda1,就把设置改成root(hd0,2), 结果还是一样。

大家有何高见,请指点一二。

必有花谢。

家园 google tells

5. Grub Error 17

Situation

Code Listing 5.1: Grub Output

root (hd0,0)

filesystem type unknown partition type 0x7

Error 17 : Cannot mount selected partition

Solution

This error is returned if the partition requested exists, but the filesystem type cannot be recognized by GRUB.

Be sure to check your root(x,y) settings in your grub.conf.

Also, if you are trying to boot Windows, make sure that your grub.conf file has the root (hdX,Y) (or rootnoverify (hdX,Y)) and chainloader (hdX,Y)+1 in it.

my suggestion: make sure that y in root(x,y) is correct. remember: y starts from 0. so /dev/sda2 is (hd0,1) in grub.

家园 grub

就我所知,grub已经没有8g的限制了,一个问题是最好有一个单独的boot区,不用大20M就够了,还有,boot区只能是ext2/ext3,而root / 就没有限制了,可以用reisfer等。

当然小心使得万年船,我自己的机器,/boot都是开始的3个主分区中的一个

家园 Gentoo livecd-i686-2006光盘害人不浅,想装的人要小心点

我先用Install-x86-unversal-l005.1的光盘安装,都是手动的过程,基本上没什么问题。虽然说联网安装kde极其费时,没有三五个小时不行,也没有出过什么大乱子,虽然说我今天撞弯后startx失败。

因为这几天用新机器,就想起来还有一张Gentoo livecd-i686-2006的光盘,拿出来一启动,嘿,直接进入gnome了,网络也自动连接好了,可以上西西河瞎摆乎了。原来它和ubuntu6.06都走到一起去了,就是学习knnopix的做法,统统进入gui,然后你想安装的话就是用它提供的一条龙程序,就像安装ms-windows一样。

就是这个Gentoo livecd-i686-2006的一条龙服务,把我已经用pm分好的区统统删光,然后提示安装失败。

第一次这样,以为是偶然发生错误,第二次又是这样,还叫我去report,咳,才想起那个窗口已经关闭了。

明天还是回到x86手动方式DIY吧。慢慢来,gentoo的安装命令基本上都会背了,呵呵。

家园 这样试试。。。
root (hd2,1)
setup (hd0)
家园 看来问题在 filesystem type cannot be recognized by ...

我今天从本地硬盘上的grub启动移动硬盘上的gentoo分区,/boot和/分别是sdb2和sdb3,启动之后是个又一个空的grub界面。我打了c命令进入grub的命令行,然后

>root(hd1,

后按tab键,结果是

Partition num: 0, Filesystem type is fat. Partition type is 0xc

Partition num: 1, Filesystem type is unknown. Partition type is 0x83

Partition num: 2, Filesystem type is unknown. Partition type is 0x83

Partition num: 4, Filesystem type is unknown. Partition type is 0xc

Partition num: 5, Selected cylinder exceeds maximum supported by BIOS

Partition num: 6, Selected cylinder exceeds maximum supported by BIOS

如果是可知的类型,应该可以手动引导,结果是找不到文件。

看来至少还得把/boot区移动到很前面才可能启动。

家园 【分享喜悦】移动硬盘版gentoo成了!

总结一下要点:

1、主板须支持移动硬盘启动,在BIOS中选择从移动硬盘启动。

2、要把/boot区建在靠近硬盘的起始部分,最好不要在1024柱面之外。虽然说grub可以找到8G之外的分区,但是BIOS仍然有一定的局限。我这次把/boot放在最前面,因此pq花了两三个小时才把大量的电影分区向后挪了一点点。

3、新的主板不论本地(IDE)还是外接移动硬盘(usb),统统按照sda、sdb分配符号。如果有一块本地硬盘和一块移动硬盘,那么他们就分别是sda和sdb。但是,grub仍然用自己的一套命名法:hd0,hd1...通常安装grub的时候,要setup (hd1),但是

4、在最后配置启动菜单的阶段,要转过来。因为主板设定从移动硬盘启动了,移动硬盘上的grub一启动,它就自认为自己躺在hd0上面,所以在启动菜单上要写root (hd0,0)之类的语句,但是下一行kernel中仍然要写real_root=/dev/sdb5之类的设定。就在这种组合的猜测之中,嫌麻烦的话可能就会放弃努力了,多试试才可能找到正确的配置。

5、内核启动之后,模块可能仍然无法找到根,这时会提示找不到/dev/sdb5之类的信息。这也是会让人产生放弃的地方,碰到非常多次了。今天在等待了数秒之后,输入/dev/sdb5,终于继续启动了!

可见,内核模块启动之后,需要一会儿才能配置好其他分区,特别是像我这样把根分区放在很远的逻辑分区中的情况。多等待几秒钟,在重新输入正确的分区符号,成功往往就在附近看着你,可是多少次我与她错过。

关键词(Tags): #gentoo#移动硬盘
家园 【分享喜悦】移动硬盘版gentoo在不支持usb启动的老机器上也成了!

在新机器上实现移动硬盘版gentoo启动之后,面临的就是如何在老机器上使用的问题。

老机器因为硬盘小,塞得满满的了,想玩linux就只能考虑添置硬盘或使用移动硬盘。

移动硬盘有天然的优势,因为固定硬盘的机器只能在一个地方使用,而且那个地方不一定有网络,也就不容易更新安装。移动硬盘版gentoo可以插到好的机器上下载和变异好索要的东西,拿回老机器上使用,老机器继续发挥最新的功能。还有一个好处是个人使用偏好到保存在一个硬盘里面,走到哪里上网就可以直接访问西西河,直接自动登录到我的ID上。

要在没有usb启动功能的机器上使用移动硬盘版的gentoo,需要自己做一个启动软盘,来引导启动过程载入内核之后把指向移动硬盘上的根。也可以做成启动光盘,还有一种方式是在本地硬盘上开出一个小小的分区,只要20M就足够了(本来做移动gentoo的目的就是因为本地硬盘太满了)。

把那个小小分区做好之后,用gentoo光盘启动进入简单的gentoo linux环境,把活动硬盘上的/boot目录的所有内容复制到小小分区之中,适当修改复制过来之后的grub.conf,使得其中有指向移动硬盘的一项。

比如说,在新的机器中,本地硬盘和移动硬盘分别命名为sda和sdb。而老机器中,本地硬盘是hdx之类的,第一个活动硬盘是sda,所以在老机器的grub.conf中要修改或干脆增加一个菜单项目用来启动sdx上的gentoo。

为了确保能够启动,编译的内核必须支持usb设备,必要时重新编译一下,再复制到老机器中去。我以前编译的内核不完整支持usb设备,导致没有成功,后来重新编译后就可以了。

还有一个问题,就是移动硬盘中的/etc/fstab,里面定义的根目录在新机器上是/dev/sdbx (上面提到移动硬盘是sdb)但是,在老机器上必须是/dev/sdax才行。我们总不能每次都修改fstab再启动吧?

后来我想了一个办法,就是使得移动硬盘在老机器上也变成sdb。最简单的办法,就是在第一个usb接口上插一个usb设备把sda占用了,我们插在第二个usb借口上的移动硬盘就成了sdb了。

(如果老机器上只有一个usb接口,我还一时想不出什么好办法来)

关键词(Tags): #gentoo#移动硬盘

本帖一共被 1 帖 引用 (帖内工具实现)
家园 恭喜,恭喜

对于老机器外接usb硬盘设备名不匹配的问题,有一个方法可以解决,就是修改一下udev rule. 修改/etc/udev/rules.d/50-udev.rules,加一行类似这样的东东:

BUS=="usb", SYSFS{product}=="USB 2.0M ??", KERNEL=="sd?1", NAME="%k", SYMLINK="camera"。

主要是 SYMLINK 。可以创建一个连接到设备上,这样在fstab中设备只要指定到/dev/camera就可以了。具体可以看这个:

http://gentoo-wiki.com/HOWTO_Customizing_UDEV

关键词(Tags): #gentoo
家园 HOWTO_Customizing_UDEV这篇文章非常好。现在很爽了,

把移动硬盘起个别名,在fstab中就一直使用这个别名,走到哪里都可以使用自己的移动硬盘上的linux了。

在不同的机器上启动的时候,找不到默认的根,就在提示中输入/dev/sda5或/dev/sdb5或/dev/sdc5,进入之后的fstab中总是能够正确地指向活动硬盘的各个分区,一劳永逸了。

这样的linux有特殊的好处,就是在有网络的地方下载升级,在没有网络的地方照样使用,写好信件等,等到了有网络的地方发信和上帖就一下解决了。

移动硬盘顶得上本本了。

全看树展主题 · 分页首页 上页
/ 1
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河