LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1483|回复: 9

从优盘启动 ARCH LINUX 优盘盘问题

[复制链接]
发表于 2007-6-6 14:48:20 | 显示全部楼层 |阅读模式
默认安装 ARCH 至 优盘 在不同机上引导时会出现 有时优盘被识别成SDA

有时被识别成SDB,除重编译核心外还有其它什么办法解决这个问题.
发表于 2007-6-6 20:07:53 | 显示全部楼层
Post by yscong
默认安装 ARCH 至 优盘 在不同机上引导时会出现 有时优盘被识别成SDA

有时被识别成SDB,除重编译核心外还有其它什么办法解决这个问题.

如果你有一个内置的sata硬盘,一般优盘会被认成是sdb的,但是在安装grub的时候 却要设置成 :boot (hd0,X)/XXXX 这是grub的要求。
这个一般是跟核心没有关系的,重新编译核心没有用处。此外,在使用usb硬盘(优盘)做启动盘的时候在/boot/grub/menu.lst中

root (hd0,X)  
#( X是你相应的盘符 sdb1  为0  sdb2 为1)
kernel /boot/vmlinuz26 root=/dev/sdbX  ro  rootdelay=10  
initrd /boot/initrd26.img

要加上的rootdelay=XX(XX是合适你机器的秒数,你多试几下 越小越好)不然会导致硬盘没有初始化而启动失败
在fstab中

/dev/sdb / ext3 defaults 0 1

这个东西基本是不用改的,arch会给你设置好, 并且在grub中的也应该跟这个相同。最关键的是你要确认grub的root 在哪儿
回复 支持 反对

使用道具 举报

发表于 2007-6-6 20:18:47 | 显示全部楼层
你可以搜索一下uuid

如何查看分区的UUID?
ls -l /dev/disk/by-uuid

可以完全替代路径。而且一个分区对应一个uuid,不会改变。
回复 支持 反对

使用道具 举报

发表于 2007-6-6 20:40:33 | 显示全部楼层
可否用 udev 做个 alias ?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-7 13:15:45 | 显示全部楼层
除了GRUB 还有 FSTAB 文件中的 根文件系统挂载点
重编译内核把所有硬盘驱动编译成模块,那么一定会先找到优盘,把优盘认成SDA,挂成根文件系统后,才能加载其他硬盘.
使用UUID在FSTAB 及 GRUB上如何设置

重新说一下,一个在GRUB的 menu.lst 中 kernel /boot/vmlinuz26 root=/dev/sd? ro
              另一个在fstab中  /dev/sd? / ext3 defaults 0 1
二楼,没看明白问题
三楼,四楼,我不知道如何操作
回复 支持 反对

使用道具 举报

发表于 2007-6-7 16:39:02 | 显示全部楼层
说到这里,请教一下fstab 用uuid的写法格式要怎么写,好像ubuntu的fstab挂在磁盘的分区就是用uuid来标识的。可惜当初没好好的看。
回复 支持 反对

使用道具 举报

发表于 2007-6-8 15:02:45 | 显示全部楼层
Post by yscong
除了GRUB 还有 FSTAB 文件中的 根文件系统挂载点
重编译内核把所有硬盘驱动编译成模块,那么一定会先找到优盘,把优盘认成SDA,挂成根文件系统后,才能加载其他硬盘.
使用UUID在FSTAB 及 GRUB上如何设置

重新说一下,一个在GRUB的 menu.lst 中 kernel /boot/vmlinuz26 root=/dev/sd? ro
              另一个在fstab中  /dev/sd? / ext3 defaults 0 1
二楼,没看明白问题
三楼,四楼,我不知道如何操作

不明白为什么要用uuid和fstab,比较喜欢gentoo的启动方法,连initramfs都不用,非常的简练。
我比较喜欢简单的设置。 上次的回复我误输入了一些东西,后来修正了,你再看看,说不定有帮助。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-8 16:16:53 | 显示全部楼层
Post by wj6202
如果你有一个内置的sata硬盘,一般优盘会被认成是sdb的,但是在安装grub的时候 却要设置成 :boot (hd0,X)/XXXX 这是grub的要求。
这个一般是跟核心没有关系的,重新编译核心没有用处。此外,在使用usb硬盘(优盘)做启动盘的时候在/boot/grub/menu.lst中

root (hd0,X)  
#( X是你相应的盘符 sdb1  为0  sdb2 为1)
kernel /boot/vmlinuz26 root=/dev/sdbX  ro  rootdelay=10  
initrd /boot/initrd26.img

要加上的rootdelay=XX(XX是合适你机器的秒数,你多试几下 越小越好)不然会导致硬盘没有初始化而启动失败
在fstab中

/dev/sdb / ext3 defaults 0 1

这个东西基本是不用改的,arch会给你设置好, 并且在grub中的也应该跟这个相同。最关键的是你要确认grub的root 在哪儿


一、我的目的是在无SATA硬盘和有SATA硬盘的环境中,USB启动硬盘都要被核心认为是SDA,而不是SDB
二、重编译核心是可以可以解决这个问题的,因为把优盘驱动编译进核心,把SATA硬盘编译成模块,那么核心一定会先认到优盘
三、rootdelay参数只是延时了ROOT文件系统加载时的等待时间,因为使用了INITRD所以可以不加ROOTDLAY参数,这个跟我的问题无关
四、FSTAB的设置确实不需要更改,这个我测试过,但是在这个情况下,使用DF显示的FILESYTEM是FSTAB上的/DEV/SDA1,而实际上这个/DEV/SDA1 应该是/DEV/SDB1,不改FSTAB会带来这个小问题。
五 因为不想每次升级自己都要编译核心,期待更完美的解决方案
回复 支持 反对

使用道具 举报

发表于 2007-6-12 00:19:46 | 显示全部楼层
突然发现其实3楼已经给你了答案  你没有利用而已。
想来利用安装光盘就可以查看相应的uuid吧?不行就进系统了再记下就是了   ps这么复杂的东西 实在是没有用的必要
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-16 16:27:25 | 显示全部楼层
使用 UUID 已解决此问题,不好意思没有仔细研究三楼的答案
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表