3月 042009
 

一年前刚安装linux的时候因为对文件系统和分区只是了解太少,在分区的时候直接将60G的空间划给了/目录,随着系统里安装的软件和配置文件的增多,不爽的地方就来了。

   1. 首先是备份,以前/分区小的时候(小于9G)都是直接用clonezilla备份整个/分区,后来因为需要安装了VBOX,VBOX的虚拟硬盘有 10个G,都在家目录下面,再后来因为要搭建nios2linux交叉开发环境,又在家目录中用了5G空间,这样一来如果再备份的话可能备份文件就大于 10G了,真的不敢想象,因为home不是单独的分区,想把它隔离出来只用clonezilla备份其他目录也不可能,恼火的很;
   2. home不是单独分区的第二点坏处就是论坛里说的:一旦需要重装系统,配置文件就都不在了,如果home是独立分区的话,重装完将它挂载到/home目录就可以了,系统和以前的一模一样。

基于这两点原因(还有一个主要原因是很多天没有捣鼓系统了,有点儿心痒),下午决定调整原来的根分区大小,然后将腾出来的空间单独划为home,在论坛上看了些帖子,折腾了几个小时,总算没出什么岔子,步记录如下:

   1. 调整分区
      需要在卸载要操作的分区的状态下进行,因为要调整/分区,所以不能进入现在的linux中,一般有下面两种方式:
          * LiveCD:可以用光驱或硬盘启动的方式启动LiveCD,在LiveCD中完成分区大小的调整;
          * 其他Linux:启动硬盘其他分区或移动设备(移动硬盘或U盘)中的linux。

      我的电脑没有光驱,U盘里的prayaya-linux没有下载gparted(用于调整分区的软件),所以只能用硬盘启动LiveCD的方式来进行,这里不再多说。
      进入Linux后,以管理员权限启动gparted(没有的话就装一下,LiveCD默认就装了的),软件启动后,将/分区调小,在空出来的硬盘空间上建立新的分区(假设为sda11),文件系统最好和原来/的文件系统一致。
   2. 复制文件
      首先在liveCD或其他Linux中将原来的根分区(假设为/dev/sda8)和新分区(假设为/dev/sda11)挂载,挂载用以下命令,其中的8和11根据自己的实际情况而定:
      sudo mount /dev/sda8 /media/sda8
      sudo mount /dev/sda11 /media/sda11
      挂载后就可以复制文件了,但要注意,/home下的文件是有权限属性的,所以复制的时候这些属性也要保留,可以用下面的命令来复制:
      sudo cp -ax /media/sda8/home/* /media/sda11
      复制完毕后将原来的home目录改名(先不要删除,万一重启后有问题可以再复制一次),然后新建/home目录作为新分区的挂载点,命令如下:
      sudo mv /media/sda8/home/ /media/sda8/home_old
      sudo mkdir /media/sda8/home

   3. 修改/etc/fstab文件
      以管理员权限用编辑器(vi,emacs,gedit等均可)打开/etc/fstab文件,一般fstab文件里的分区都是以UUID标记的,所以要先查看一下调整分区后原来分区的UUID有没有变化,有变动的话要改动fstab文件中的相关项使其和现在保持一致,查看分区UUID的命令如下:
      sudo blkid
      修改了UUID后还没有完,现在的系统中已经没有/home了(虽然有home目录,但没有任何数据,因为系统启动时没有将分区/dev/sda11挂载到/home),所以需要在fstab文件中依葫芦花瓢地加上一行,内容如下:
      UUID=XXXXXXXXXX(新分区的UUID) /home ext3 defaults 0 2
      将fstab文件保存后关闭。

重启系统,一切已经OK了,好像还不是太难。

 回复

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>