ubuntu挂载其他分区到/home下,将当前分区内容替换

有时候,我们装 系统时,可能因为没注意,把某一个分区分小了,导致到最后,我们的那个盘容不下了,
这时,面临的两个选择就是:要么卸载一些软件,要么重新分区,重装系统,其实,还可以这样,去把其他
 
多余的盘分一个区出来,然后替换当前分区,放心,数据不会丢失,而且所有安装的软件都可正常的使用.
 
而我装的系统发现 根/目录快占完了,又不想重装系统,想用一个新的分区去替换/home,做法如下:
 
这里以挂载/home分区为例子,其他的分区应该类似吧
 
需要以下6个步骤:
 
         1,分一个新的分区,并格式化为你当前的系统的文件系统格式,如ext3或ext4
 
         2,备份你的fstab文件,然后编辑改文件,挂载你刚格式化的分区为/media/home 然后重启
 
         3,使用rsync命令来同步所有的/home下的文件到/media/home
 
         4,再次编辑fstab文件,挂载为把刚才的/media/home改为/home
 
         5,修改当前的文件/home为/old_home重启
 
         6,删除/old_home
 
根据上面的操作,即使你某一步出错了也很容易修改回来
 
细说每一点:
 
         1,分一个新的分区,并格式化为ext4文件系统
 
                    这个在这里讲得很好,可以去看看,或者搜一下fdisk命令分区,看看就能会了
 
         2,备份你的fstab文件,然后编辑改文件,挂载你刚格式化的分区为/media/home 然后重启
 
                    a) 查找该分区的uuid
 
[plain] 
xiaobing@zhang:~$ sudo blkid  
[sudo] password for xiaobing:   
/dev/sda1: UUID="00087570000398CE" TYPE="ntfs"   
/dev/sda5: UUID="000B32AB00053B61" TYPE="ntfs"   
/dev/sda6: UUID="000D000B000602E6" TYPE="ntfs"   
/dev/sda7: UUID="2be473c4-d355-4355-9263-c2815b51e49e" TYPE="ext4"   
/dev/sda8: UUID="5803947b-195a-41ca-b0fd-d8a47ccd8095" TYPE="swap"   
/dev/sda9: UUID="8cbedd1f-6da5-40ca-add5-16af9c2eaa7e" TYPE="ext4"   
/dev/sda10: UUID="1f450485-6400-4a67-bc7d-a1fab5f50db1" TYPE="ext4"   
                   或者使用df -vh 查看
                    这个会显示出你刚分出的那个区,  -h 是以人能读懂的大小格式G来显示出磁盘的大小,所以,就能找到你刚分的那个区了
 
                    b)备份你的fstab文件                         
 
[plain] 
$ sudo cp /etc/fstab /etc/fstab.$(date +%Y-%m-%d)    
                     c)比较一下备份的文件是否有差别,有差别重新备份一次 
[plain] 
$ cmp /etc/fstab /etc/fstab.$(date +%Y-%m-%d)  
                    d)用你最喜欢的编辑器,打开文件/ect/fstab 输入如下:
 
[plain] 
# (identifier)  (location, eg sda5)   (format, eg ext3 or ext4)      (some settings)   
UUID=????????   /media/home    ext4          defaults       0       2   
                    注:把这里的UUID和你分的区的替换,还有文件格式替换,其他的就不用管了,保存退出
                    e)新建一个目录/media/home 
 
[plain] 
$ sudo mkdir /media/home  
                   f)使用命令 : 
[plain] 
$ sudo mount -a  
                    来挂载全部的分区设备,并重启
          3,使用rsync命令来同步所有的/home下的文件到/media/home  
 
[plain] 
$ sudo rsync -aXS --exclude='/*/.gvfs' /home/. /media/home/.  
           注: 这样添加--exclude,防止说不让复制.gvfs文件,并把整个现在的/home下的文件复制到了/media/home中
            检测一下是否同步是完成的,输入:
 
[plain] 
$ sudo diff -r /home /media/home  
          4,再次编辑fstab文件,挂载为把刚才的/media/home改为/home
[plain] 
# (identifier)  (location, eg sda5)   (format, eg ext3 or ext4)      (some settings)   
UUID=????????   /home    ext4          defaults       0       2  
         注:这里就把刚才的/media/home 更改为/home
          5,修改当前的文件/home为/old_home重启
 
[plain] 
$ <span style="line-height:16px; font-family:Arial,Helvetica,sans-serif">cd / && sudo mv /home /old_home && sudo mkdir /home</span>  
           注:把当前的/home重命名为/old_home, 这个并没有删除你的内容,然后重启
          6,删除/old_home
 
[plain] 
$ sudo rm -rf /old_home  
 
总结:对于linux的分区文件系统,就像抽屉似的,可以随时插拔,所以,再想更换某个分区时,只要做几个步骤:1,先挂载一个分区到/media/home
 
然后修改分区表文件/etc/fstab 让挂载的分区能在重启后自动挂载,然后,把现在像更新的分区数据全部同步到新的分区,然后再次将改分区表
 
/etc/fstab为真正的分区,然后重启,就ok了,谢谢!
 
欢迎大家来指点啊!

——————————————————————分割线——————————————————————
以上为原文!!!
原文地址:http://www.2cto.com/os/201310/249924.html
以下为自己添加!!!

新加硬盘创建分区:

如果对linux 下的硬盘和分区的命名方法不懂可以先看看这个http://blog.chinaunix.net/uid-17277885-id-2809788.html
sda的硬盘命名方式除了SCSI接口的硬盘,还包括SATA、USB、Flash等接口。因此,平常我们插上U盘的时候,显示的依旧是sd*
xvda的硬盘命名方式是 模拟的硬盘

1. 查看硬盘,可以到 /dev 目录下查看
    $fdisk -l    

2. 对硬盘分区(假设新增硬盘是 /dev/sdb)
    进入fdisk模式:$fdisk /dev/sdb
    输入n进行分区:n
      选择p(主分区)  或 e(扩展分区):p
      输入1 主分区编号为1 :1
      其他参数默认即可
      输入w保存分区参数:w

3.重新通过fdisk -l 命令查看,可以看到分区成功 /dev/sdb1

4.对分区进行格式化操作(ext4是一种文件系统(windows下常用的:fat、exfat、ntfs),根据需要来定。)
      $mkfs -t ext4 /dev/sdb1

5.接下来就可以进行上文的操作了
      当然也可以直接挂载分区(不过格式化后分区了没有内容)
      挂载命令: $ mount /dev/sdb1  /home
      使用:$df -h    可以查看是否挂载成功(如果插入了U盘也可以看到挂载的U盘)

6.此时如果重启计算机挂载分区就会丢失,因此可以配置开机自动挂载分区
      $echo "/dev/sdb1 /home ext4 defaults 0 2" >> /etc/fstab
      也可以按照上文的方法来配置/etc/fstab  ( 推荐使用uuid而不是/dev/sdb1来挂载,因为uuid是硬盘的唯一标识符.最好有注释)

猜你喜欢

转载自blog.csdn.net/wangxicoding/article/details/42836363