LinuxSir.cn,穿越时空的Linuxsir!

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

启动系统找不到/dev/root分区故障解决方案

[复制链接]
发表于 2009-3-6 09:59:00 | 显示全部楼层 |阅读模式
又一次重新安装了2009.0(KDE4),别误会,不是2009.0(KDE4)不稳定,而是我不断尝试安装KDE4.2 For 2009.0甚至UP到2009.1导致系统故障。这一次我放弃了KDE4.2,直接添加testing源UP到KDE4.1.4,鉴于UP之中更新频繁,可能产生一些文件碎片,我决定优化磁盘:在LiveCD下把root(/根分区)所有文件COPY到别的分区,然后格式化root(/根分区)。

行动。光驱启动LiveCD,打开终端:
su
mkdir /media/hd2/tmp
mv /media/hd/* /media/hd2/tmp/

打开控制中心里的磁盘管理,先卸载,格式化,再挂载。
mv /media/hd2/tmp/* /media/hd/

按照我的设想,这样的做法不会产生任何问题,因为从系统本身而言没有任何变化,重新启动系统后应该可以顺利进入。

系统启动,一直正常,心内狂喜。就在这时,启动停止,提示/dev/root文件系统不存在。

这时有点不解,莫非要我新建/dev/root文件夹,然后系统启动中把/(根分区)挂到这儿?干脆在LiveCD下新建/dev/root文件夹,重新启动系统后依然提示/dev/root文件系统不存在,此路不通!

/dev/root文件系统到底是什么呢,应该就是/(根分区),我的/(根分区)对应的真实设备其实就是/dev/sda1,这里为什么要写成/dev/root呢,有可能/(根分区)不一定在/dev/sda1,所以换了一种表达方法/dev/root更准确。

既然系统启动时grub无法找到/dev/root,重新修复grub,还是不行。
看来不是grub的问题,索性进入grub,看到启动项中存在root=UUID=f0334758-c19e-4d76-8e70-49982f57b9af,莫非强行指定了/(根分区)的UUID导致的故障,干脆删除让系统自动识别,还是不行。
干脆来点狠的,进入grub文本界面,输入:
kernel (hd0,0)/boot/vmlinuz
initrd /boot/initrd.img
boot

还是不行!

近乎绝望了,看来启动项中必须有root=UUID=f0334758-c19e-4d76-8e70-49982f57b9af,我格式化了/dev/sda1后UUID有所改变,怎么查看UUID呢,google了一下:
blkid /dev/sda1

再次光驱启动LiveCD,打开终端:
su
blkid /dev/sda1
/dev/sda1: LABEL="/" UUID="4ae39814-e555-4810-8854-7614b5082ee4"

修改/boot/menu.list和/etc/fstab,凡是涉及root=UUID=和sda1的地方全部修改为4ae39814-e555-4810-8854-7614b5082ee4

惴惴不安中重启系统,谢天谢地,完全正常!由此展开了非分之想:比如把/(根分区)中文件转移到U盘,是不是只需修改/boot/menu.list和/etc/fstab中的UUID……
发表于 2009-3-16 23:05:14 | 显示全部楼层
恩 应该是可以 我试过ubuntu在U盘里面 UUID改成对应的之后是可以运行的
回复 支持 反对

使用道具 举报

发表于 2009-3-17 08:42:28 | 显示全部楼层
ls -l /dev/disk/by-uuid

查看uuid更加快速的方法。。。

另外,直接指定sdXX也是可行的
回复 支持 反对

使用道具 举报

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

本版积分规则

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