善忘技术夹 Logo
善忘技术夹
技术文章 · 2645 阅读

Ubuntu下转移/usr等分区的方法

Ubuntu下转移/usr等分区的方法

原因:初装的时候,sconf把ubuntu只分了/和/home两个区。很快装的软件把/usr分区给塞满了。于是打算把/usr转移到新分的分区。 参考了网上很多方法。试了很多。最终得以解决。感觉部分网上写的并不合适,特此写下方法(本方法同样适用转移/home等其它分区): 1、新建分区。在liveCD中使用磁盘工具新建10G的分区。新分区名为:/dev/sda7(卷标为usr_disk)。然后重启。liveCD模式就是把安装盘放进去,直接运行Ubuntu从而不调用原系统文件。 2、转移思路:  先将原/usr的所有内容拷至新分区usr_disk,再将原/usr更名以免新挂起的和它重名。再将/usr这个目录设制成自动挂载即可。 3、步骤:  a)先将原/usr的所有内容拷至新分区usr_disk。拷之前必须让/usr不能再读写(否则拷不全)。所以需在转到level 1的情况下操作。在终端root帐户输入:init 1,然后输密码登录到root shell命令行下。   先挂载新分区:mount /media/usr_disk /dev/sda7 (若/media/usr_disk不存在需mkdir创建) 再拷:cp -pr /usr/* /media/usr_disk(权限一同拷贝)   拷备时间会很长,视文件多少而定。原/usr此时应已全部拷过去了。  b)将原/usr更名以免新挂起的和它重名。   mv /usr /usr_old   (正常后删除usr_old文件夹即可)  c)再将/usr这个目录设制成自动挂载即可。.   自动挂载需要修改/etc/fstab文件。在文件尾部加入   /dev/sda7 /usr ext4 defaults 0 0 保存即可自动加载。 注:若在level 1上修改fstab文件,需要用ed命令改。也可以在liveCD上来改(此时需加载原根目录,注意别改错了)。   在网上看到有人为保证自动加载采用:   创建符号链接: ln -s /media/usr_disk /usr 再在fstab中加入:/dev/sda7 /media/usr_disk ext4 defaults 0 0 此方法和之前的方法相似,但又觉得多此一举。所以没有采用。   另有的文章说是看到拷贝/usr文件夹时,使用tar来做。感觉也是没必要

上面的步骤,我没有用cd盘进去, 直接在硬盘上分出了一个区 /dev/sda10 先创建了个目录,mkdir /media/usr_disk 然后复试文件 ,cp -pr /usr/* /media/usr_disk

移动/usr目录 mv /usr /usr_old 想去修改 /etc/fstab 文件,发现vi vim文本编辑器都不能用了,那个郁闷啊 第一次我有吧usr目录弄回去了。 然后再用vim编辑器修改了文件/etc/fstab, 加上了/dev/sda7 /usr ext4 defaults 0 0 记得看鸟哥的书里面,说是要mount -a挂载测试一下,要是文件写错了,很可能进不了系统。 这一测试就好了,挂载上了, 问题来了,/usr原来的那个没有办法删除了, 卸载半天,都不弄不下来了 /usr一直在上面挂着 没有办法,可能有其他的办法, 没有找到,我就把fstab添加那个行删掉了, 重启系统了 再次登录, 先修改/etc/fstab文件,加上上面的那行 然后mv /usr /usr_old 执行mount -a 提示/usr不存在, mkdir创建了一个目录,然后mount -a就ok了 执行 df 就能看到自己的/usr挂载目录了

如果mount -a不行, 看看是不是usr_disk没有umount,记得umount下