分页: 1 / 2

windows下调整了linux分区的大小,进不去Ubuntu了

发表于 : 2009-03-20 16:31
lilymarcus
给/目录分了5G用完了,要装软件都没法装。于是想给它多分点。

linux分区一共4部分,第一个是swap分区500M,第二个挂给了/目录5G,第三
个100M挂给了/boot目录,最后一个给了/home目录5G。

然后进window打开paragon partition manager试图把/home的一部分空间分给/目录。具
体做法是
1。/home的前部划分出一些free space
2。把/boot区域整体移动到free space的后方,/home的前方
3。把所有free space合并进/目录。

整个过程没有出错,但是结束后提示我可能要reinit lilo的信息,不知道怎么reinit。


后来想想这样肯定不行,忽视了linux启动时要挂在的盘的信息,导致启动时不能正确找
到位置挂载,现在启动进不了桌面环境,提示只能在只读模式下用root登陆。

现在该怎么办?我先用livecd看下能不能进

Re: windows下调整了linux分区的大小,进不去Ubuntu了

发表于 : 2009-03-20 16:34
Super126
修改UUID,应该是你调整linux分区大小引起UUID改变,导致grub无法找到linux所在的分区。用livecd把新的UUID改过来就好了。
当然不用livecd也能进ubuntu,方法就是在启动grub时按E键修改启动配置:

代码: 全选

title		Ubuntu 8.10, kernel 2.6.27-14-generic
uuid		[color=#FF8000]这里是UUID[/color]
kernel		/boot/vmlinuz-2.6.27-14-generic root=UUID=[color=#FF8000]这里是UUID[/color] ro quiet splash 
initrd		/boot/initrd.img-2.6.27-14-generic
quiet
改为:

代码: 全选

title		Ubuntu 8.10, kernel 2.6.27-14-generic
root (hd0,*)     //这里是你linux所在的分区号
kernel		/boot/vmlinuz-2.6.27-14-generic  ro quiet splash 
initrd		/boot/initrd.img-2.6.27-14-generic
quiet

Re: windows下调整了linux分区的大小,进不去Ubuntu了

发表于 : 2009-03-20 22:22
lilymarcus
i can boot and enter the livecd desktop environment,
how can i do the fix within the livecd desktop?

Re: windows下调整了linux分区的大小,进不去Ubuntu了

发表于 : 2009-03-20 22:36
lilymarcus
刚才进了livecd下面,但是不知道怎么修改。请问livecd桌面下怎么修复?
我看menu.lst里的硬盘位置是不对的,调整过后我看了应该是9(/boot分区),但是它里面还是8(原来的/boot分区,现在的/分区或者/home分区)

Re: windows下调整了linux分区的大小,进不去Ubuntu了

发表于 : 2009-03-20 22:38
photor
lilymarcus 写了:i can boot and enter the livecd desktop environment,
how can i do the fix within the livecd desktop?
在命令行用

代码: 全选

sudo blkid
查看ubuntu所在分区的新uuid,然后相应修改menu.lst文件 :em09

Re: windows下调整了linux分区的大小,进不去Ubuntu了

发表于 : 2009-03-21 11:14
jxhow
前车之鉴 :em04

Re: windows下调整了linux分区的大小,进不去Ubuntu了

发表于 : 2009-03-21 12:53
billbear
这样吧,在 livecd 下如果能上网的话,打开一个终端,把下面的命令粘帖进去执行:(在浏览器里 ctrl-c 是复制,在终端里 ctrl-shift-v 是粘帖)

代码: 全选

cd ~/Desktop && wget 'http://home.comcast.net/~ubuntu_grub/boot_info_script.txt' && sudo bash boot_info_script.txt
这会搜集一些启动有关的信息,在桌面上生成一个 RESULTS.txt 。贴上来分析一下看看。

Re: windows下调整了linux分区的大小,进不去Ubuntu了

发表于 : 2009-03-21 22:27
lilymarcus
我一共2块硬盘,80G的是Master,40的是slave
linux装在80的上面,如图,最后4个分区是最初装Ubuntu的。
其中(最后四个的)第一个是swap 500M
第二个是/
第三个是/boot 100M
第四个是/home
图中的属性为原先/boot
图片
图片不能直接看到,但是可以右键复制地址在新窗口打开,或者可以在这里看到图:
http://marcusology.blogspot.com/2009/03/ubuntu.html

我原本/和/home都是给的5G,然后进window从/home分了2G给/(先分出自由空间,然后把/boot分区从自由空间之前移到之后,最后把自由空间给/),调整过程中没有出错,但最后给我个提示说是最好reinit lilo,可能启动有问题。
然后启动就不能进图形界面了,只能以只读模式用root帐号进入一个错误很多的看起来像linux的命令行。
我用livecd进去看分区,现在/目录确实变成了7G,/home变3G,4个分区完好。
然后试图修改menu.lst
运行了

代码: 全选

ubuntu@ubuntu:~$ sudo blkid
结果(我分区比较多)
/dev/sda1: UUID="0A24F5AB24F599C1" LABEL="System" TYPE="ntfs"
/dev/sda5: UUID="307861E47861A974" LABEL="Pro" TYPE="ntfs"
/dev/sda6: LABEL="USE" UUID="48DF-4AC5" TYPE="vfat"
/dev/sda7: UUID="0785d887-a7ab-449a-812a-f4f86c8dc4df" TYPE="swap"
/dev/sda8: UUID="a3dfa48c-014c-40f0-b517-db8a02d1ebbf" SEC_TYPE="ext2" TYPE="e
xt3"
/dev/sda9: UUID="4ccac222-236f-45ea-9bd0-a37b19e69a5a" TYPE="ext2"
/dev/sda10: UUID="b7cf9ab5-f245-4cd0-a1a7-78e1de9e9474" SEC_TYPE="ext2" TYPE="
ext3"
/dev/sdb1: LABEL="BACKUP" UUID="F0B1-F1B6" TYPE="vfat"
/dev/sdb2: UUID="F8708C6C708C3402" LABEL="XP" TYPE="ntfs"
/dev/sdb5: LABEL="SOFT" UUID="3018-1BE7" TYPE="vfat"
/dev/sdb6: UUID="ACCC2645CC260A62" LABEL="Marcus" TYPE="ntfs"
/dev/sdb7: UUID="ECC0FA51C0FA218E" LABEL="Game" TYPE="ntfs"
/dev/sdb8: UUID="B6BC7D5ABC7D1659" LABEL="Listen" TYPE="ntfs"
/dev/loop0: TYPE="squashfs"

原先的menu.lst内容是:(其中的uuid为sda8的,也就是/目录的分区)这个munu.lst不是livecd的,而是挂载在100M分区里的原先的那个
title Ubuntu 8.04.2, kernel 2.6.24-24-generic
root (hd0,8)
kernel /vmlinuz-2.6.24-24-generic root=UUID=a3dfa48c-014c-40f0-b517-db8a02d1ebbf ro quiet splash
initrd /initrd.img-2.6.24-24-generic
quiet

title Ubuntu 8.04.2, kernel 2.6.24-24-generic (recovery mode)
root (hd0,8)
kernel /vmlinuz-2.6.24-24-generic root=UUID=a3dfa48c-014c-40f0-b517-db8a02d1ebbf ro single
initrd /initrd.img-2.6.24-24-generic

我在livecd下修改了menu.lst文件,

代码: 全选

sudo gedit (目录)
,所以没有未保存的问题。改成了/boot分区的uuid,
title Ubuntu 8.04.2, kernel 2.6.24-24-generic
root (hd0,9)
kernel /vmlinuz-2.6.24-24-generic root=UUID=4ccac222-236f-45ea-9bd0-a37b19e69a5a ro quiet splash
initrd /initrd.img-2.6.24-24-generic
quiet

title Ubuntu 8.04.2, kernel 2.6.24-24-generic (recovery mode)
root (hd0,9)
kernel /vmlinuz-2.6.24-24-generic root=UUID=4ccac222-236f-45ea-9bd0-a37b19e69a5a ro single
initrd /initrd.img-2.6.24-24-generic

然后退出livecd重启,系统选择菜单选这个Ubuntu系统时,提示好像是failed,只有两行错误,具体我等下再看下。然后只能选择crtl-alt-delete.。
另外,只能用代理上国内网,不能上国外。而且用代理连接源下载安装时会出现代理用户名密码验证错误(实际没错,据说是因为我们学校代理服务器是win的),所以没有办法

代码: 全选

cd ~/Desktop && wget 'http://home.comcast.net/~ubuntu_grub/boot_info_script.txt' && sudo bash boot_info_script.txt

Re: windows下调整了linux分区的大小,进不去Ubuntu了

发表于 : 2009-03-21 23:19
billbear
你原来的 menu.lst 没有问题。修改以后是错误的,再改回去。
你的分区编号没有变化,uuid 也没有改变。
root (hd0,8) 是对的。 (hd0,0) 是 sda1 , (hd0,8) 是 sda9。 grub 的编号是从 0 开始的,比 linux 的设备号小 1.
kernel /vmlinuz-2.6.24-24-generic root=UUID=a3dfa48c-014c-40f0-b517-db8a02d1ebbf ro quiet splash
也是对的。内核参数里的 root 和前面的 root (hd0,8) 是两码事,必须指向根分区,而不是 /boot
能以只读模式用root帐号进入一个错误很多的看起来像linux的命令行
这说明 grub 没有问题,不要折腾 menu.lst 了。你的问题应该是根分区的文件系统本身有错误。 fsck 一下。sda10 也 fsck 一下。以后调整 ext3 最好用 gparted 从 livecd

Re: windows下调整了linux分区的大小,进不去Ubuntu了

发表于 : 2009-03-22 12:37
lilymarcus
我先进的gparted,可里面根本不让改,所有动作都是灰色的。然后才去的windows。。。。
那我还有没可能回到原来系统?或者还是按照这个顺序挂载4个分区后重装Ubuntu,原来的设置和安装的软件可以通过设置继续使用吗?

Re: windows下调整了linux分区的大小,进不去Ubuntu了

发表于 : 2009-03-22 12:53
billbear
用不着重装。先检查磁盘。 gparted 要在 livecd 里用,因为不能调整使用中的分区。

Re: windows下调整了linux分区的大小,进不去Ubuntu了

发表于 : 2009-03-22 13:18
lilymarcus
billbear 写了:用不着重装。先检查磁盘。 gparted 要在 livecd 里用,因为不能调整使用中的分区。
我以为可以和pqmagic一样设定完任务重启执行。。。
刚才重启的时候我仔细把错误提示读了一下,可能确实是文件系统有问题。我把错误提示抄了些下来
用原来的menu.lst启动linux后显示:
......
......
checking root file system
1183
fsck 1.40.8(13-Mar-2009)
/dev/sda8:Resize inode not valid
/dev/sda8:UNEXPECTED INCONSISTENCY;Run fsck MANUALLY
(i.e.,withou -a or -p option)
fsck died with exit status 4
*An automatic file system check (fsck) of root filesystem failed
A manual fsck must be performed,then the system restarted.
.......(略去几个不重要字)
* the root filesystem is currently mounted in read-only mode.
A maintenance shell will now be started
(下面就是命令行了)
然后我输入root帐号密码登陆,运行

代码: 全选

fsck -a / 
显示结果:
resize inode not valid .Recreate?(y) (我选的no)
/dev/sda8 contains a file system with errors,check forced
Pass 1:checking inode,blocks and sizes
Group 0's inode table at 4 conflicts with some other fs block,Relocate?(y) (我选的no)
然后我就Ctrl+C退出了。

我现在不确定如果让他recreate和relocate会不会损坏原来分区里的信息,所以不敢修复。现在该怎么修复呢?

Re: windows下调整了linux分区的大小,进不去Ubuntu了

发表于 : 2009-03-22 20:38
billbear
有移动硬盘的话,可以考虑在 livecd 把 /dev/sda8 和 /dev/sda10 备份一下。
在移动硬盘建立一个 ext3 分区,然后在 livecd 里把 sda8 sda10 和移动硬盘挂载起来,用命令行
sudo cp -a ....
来拷贝。不要用图形界面来拷贝,否则权限可能出错。

Re: windows下调整了linux分区的大小,进不去Ubuntu了

发表于 : 2009-03-22 21:56
lilymarcus
我可以直接覆盖安装吗?这样原有数据是不是还在?
或者把里面东西考出去后,再重新安装,然后在livecd下把考出来的数据再考回去覆盖掉。这样可行不?

Re: windows下调整了linux分区的大小,进不去Ubuntu了

发表于 : 2009-03-23 0:15
billbear
先备份:(不要备份到 ntfs/fat 之类的分区,文件会丢失一些属性。最好在移动硬盘上做一个 ext3 分区)
sudo cp -av /sda8挂载点/* /移动硬盘备份路径
接着卸载、格式化 sda8 分区,然后写回原来的 uuid -
sudo umount /dev/sda8
sudo mkfs.ext3 /dev/sda8
sudo tune2fs /dev/sda8 -U a3dfa48c-014c-40f0-b517-db8a02d1ebbf
然后把备份的数据再拷回去即可。不需要重装。