想法把所有的硬盘空间都用上,查找了网上文章,说是用fdisk命令,于是按部就班
fdisk /dev/hda
在Command提示符下,n=>add a new partition,创建一个主分区,将剩下的硬盘都用上,退出。
使用mkfs.ext3,格式化新的分区,然后mount,使用df命令可以看到,所有的空间都已用上。
这时候我突然想到,如果把现有的/home中的内容copy到新mount上来的分区里,将新的分区挂载到/home下,如果成功的话,那就不用再重装系统了
按照这个想法,我操作如下:
mv /home /home1 ;
mkdir /home;
mount新的分区至/home ;
cd /home1;
cp -r -t /home *
修改/etc/fstab,将 /home自动挂载
reboot,成功进入gnome,原先的设置都保留。
有了这次成功的经历,我决定胆子放得更大些,在不重装的基础上将整个系统分区重现划分。
partition schema确定如下:
/ ext3 1024MB hda1
/boot ext3 100MB hda2
/usr ext3 10240MB hda3
/var ext3 15360MB hda5
- swap 1024MB hda6
/tmp ext3 1024MB hda7
/home ext3 remains hda8
如法炮制,先处理/boot,mv /boot /boot1; 用fdisk划分好之后,mkfs却始终不成功,于是我想是不是由于fdisk之后没有重启机器呢,reboot一次试试看,果然reboot后可以mkfs,看来和man fdisk里说得不太一样,不管那么多,将原先/boot下的内容剪切到/dev/hda2上,修改menu.lst将root改成(hd0, 1),修改fstab,然后重启看效果。满心欢喜,这次将从新分区启动了,没想到这就犯了一个大错误。
重启机器后,grub报错,出错号好像是15,看着这个出错号,我如梦初醒,坏了,一定是找不到/boot下的文件了。仔细想想,都没有让linux开始引导怎么会mount我的新分区/dev/hda2呢?我想先尝试进入grub的命令行,在网上找了找,就我现在的情况好像没办法,只能想办法从光盘启动了。
问同事借了张redhat的启动盘,进入rescue模式,启动后运行grub,在grub>提示符下进行如下操作:
1、root (hd0,1) // 按照我的schema,/boot是在/hda2上
2、setup (hd0)
第一个命令是指定你的 /boot 分区位置,如果你的 /boot 没有单独分区,那么就是你的 / 分区。
第二个命令是将 Grub 引导记录写入 MBR 。
这里有个小插曲,在进行上述操作的时候,不能将mount硬盘,否则执行root的时候会始终“unrecognized device string”,我不明白为什么会这样,事后想想也不知道当时是怎么试出来的,写mbr的时候不能mount硬盘吗,这个原因需要找一下
reboot,进入grub选择os的菜单,选择debian,进入系统。
这里还有一点需要说明一下,为了验证menu.lst是否有用,我将grub配置文件menu.lst里的root、kernel的值做了修改,选择不同项时,果然引导到不同的启动文件上。
由于时间关系,我没有仔细看grub的命令,也没有查阅相关资料,我的猜想如下,需要以后验证:
1、通过grub命令,将引导记录写入MBR,这个作用范围是从机器启动到载入menu.lst(是不是类似将某个主分区标记为可引导,然后再到这个分区里去寻找grub目录,等刻好自己的linux启动盘后尝试:将/dev/hda2下的grub目录删除,是否也出现错误15呢)
2、通过在grub的menu.lst菜单中选择os后,引导权才真正交到linux手中,逻辑上应该是这样,否则要grub干什么
总之,今天的所做了的工作是:
1、使用fdisk,mkfs,mount等命令,找到一条有可能不重装系统的情况重新分区的可能,如果成功的话再感叹一下linux的好,呵呵
2、学会用rescue光盘拯救硬盘,这个以前只是想过,没实际操作过
3、揣测了grub的启动过程,等刻好了盘之后需要看书、做实验验证这个想法
今天老婆狠狠地鼓励了我一把,让我一个下午都精神饱满。嘿嘿,不知道为什么,在老婆面前我总能表现得刻苦钻研、永不言败,连我自己都喜欢现在的自己了,呵呵,老婆,我不会辜负你的。
阅读(1329) | 评论(0) | 转发(1) |