分享

Ubuntu 16.04 /home 目录迁移到独立分区的方法

 waston 2019-09-24

1 简介

Ubuntu分区方案一般有下面三种:

  1. /boot 200M、/ 30G、/home 剩余全部空间、swap 8G

  2. / 剩余全部空间、swap 8G

  3. / 30G、/home 剩余全部空间、swap 8G

第一种分区方案是为了将/boot独立出来,防止操作系统无法启动,这样分的好处博主没体会到,好像/boot没什么用,而且把磁盘搞得支离破碎的,所以博主一般不用这种分法。
第二种分区方案是懒人方案,或者说新手方案,简单粗暴,对于装系统像家常便饭一样的博主来说,这样分区最快啦,毕竟在实体机上操作分区需要小心翼翼,耗费心力啊。
第三种方案的好处是/home分区被独立出来了,这样以后重装系统的时候就可以保留/home分区里的用户数据了,就像重装windows只需要格式化C盘一样,重装Linux只需要格式化 / 分区即可。

第三种分区方案是博主推荐的方案,因为重装Linux系统可以保留用户数据

如果已经按照第二种方案,只分了一个 / 分区怎么办呢?
方法是将/home迁移到独立的分区中,下面我们就来将/home独立出来。

2 环境

磁盘操作是危险操作,如果你还不熟练的话,请在虚拟机中操作,这里推荐vmware虚拟机。博主的环境如下:

  • win7

  • vmware 12

  • Ubuntu 16.04 iso镜像

3 安装Ubuntu虚拟机

到Ubuntu官网下载Ubuntu 16.04的镜像,下载地址:

Ubuntu 16.04官网下载地址

然后百度下载vmware,下载地址如下:

VMware 12 百度软件中心下载地址

破解也很容易,百度一下vmware注册码就可以了。这里博主就带过了,接下来要创建Ubuntu虚拟机,也很简单,一直点下一步就可以了,只说两点。
要vmware开机加载镜像文件,则可以右键虚拟机,然后点击设置,选择CD/DVD选项,选择使用ISO镜像文件,并且勾选启动时连接的框,然后重启虚拟机就可以了,不需要U盘,如下图所示:

这里写图片描述

分区的时候按照第2种方案分区,即 swap 8G,/ 剩余空间。但是要注意保留一部分空闲分区,便于我们创建新的分区,博主的分区如下图所示:

这里写图片描述

如果你全部分完了也没关系,在vmware中增加虚拟机的磁盘空间即可。如下图所示:

这里写图片描述

4 准备新的ext4分区

/home要挂载到独立的分区中,所以首先我们得有一个新的ext4分区。要得到一个新的分区有两种方法:

  1. 压缩现有分区,创建新分区,推荐Gparted工具

  2. 从空闲分区创建新的分区

这里我们用安装的时候预留的空闲分区来创建新分区。首先用下面的命令来看看挂载的情况:

df -h

可以看到只有一个分区/dev/sda1被挂载在了/目录上面,其余的挂载点挂载的都是内存上,swap是没有挂载点的。如下图所示:

这里写图片描述

接着再来看看分区的情况:

sudo fdisk -l

可以看到只有两个分区,sda1和sda5,sda2是扩展分区,扩展分区必须再划分成逻辑分区才能使用,逻辑分区的区号从5开始,因此只有2个分区,而sda5分区是swap,如下图所示:

这里写图片描述

接下来我们用Gparted来分区。Gparted是Linux下的无损分区工具,图形操作界面非常简单,如果是实体机,需要将Gparted用软碟通刻录到U盘,然后从U盘启动,如果是虚拟机,则直接启动时候加载Gparted镜像就可以了。Gparted下载地址:

Gparted 镜像下载地址

右键虚拟机,点击设置,CD/DVD选项选择Gparted镜像,然后启动虚拟机,就可以进入Gparted界面了。如果不能启动到Gparted,则需要调整一下vmware虚拟机的启动顺序。先关闭虚拟机,然后选择启动到固件,如下图所示:

这里写图片描述

这时候就进入了bios设置,切换到boot选项卡,然后按 +/- 号键来调整启动顺序,把CD-ROM调整到Hard Disk前面,调整完毕后按F10键保存退出,如下图所示:

这里写图片描述

一路按回车键,就进入了Gparted的界面,如图所示,右边灰色的就是空闲分区:

这里写图片描述

对灰色区域点右键,新建分区就可以了,拖动进度条,然后点击add,然后在点击Apply,建好之后的分区如下图所示:

这里写图片描述

好了,到这里就准备好了新的分区,下面我们来独立/home目录。

5 /home目录独立

首先执行下面的命令,查询刚刚创建的/dev/sda3分区的uuid:

sudo blkid

这里写图片描述

打开/etc/fstab:

sudo gedit /etc/fstab

添加下面一行:

UUID=782e0333-6722-4506-bf73-4353fc3ccfc6 /media/home   ext4    nodev,nosuid    0   2

这里的UUID替换为我们刚创建的分区/dev/sda3的uuid
注意,和其他行的格式要一致,第一个空是空格,后面的空都是Tab键

接着创建目录:

sudo mkdir /media/home

将/dev/sda3挂载到/media/home:

sudo mount -a

复制/home到/media/home:

sudo rsync -aXS /home/. /media/home/.

这个过程需要一点时间,等待命令完成。接着执行下面的命令:

cd /sudo mv /home /home_backupsudo mkdir /home

这个时候创建了一个新的/home目录,接着再打开/etc/fstab:

sudo nano /etc/fstab

将/dev/sda3分区挂载点由/media/home改为/home,也就是将下面这行:

UUID=782e0333-6722-4506-bf73-4353fc3ccfc6 /media/home   ext4    nodev,nosuid    0   2

改为:

UUID=782e0333-6722-4506-bf73-4353fc3ccfc6 /home ext4    nodev,nosuid    0   2

修改完后用 ctrl + o 来保存,ctrl + x 退出。然后执行下面的命令重写挂载:

sudo mount -a

最后删除/home_backup:

sudo rm -rf /home_backup

现在我们再来看看分区的挂载情况:

df -h

这里写图片描述

对比前面的图片,就可以发现/home已经挂载到/dev/sda3上去了。
好了,到这里我们就把/home成功的独立出来了。

6 重装Ubuntu

我们要把/home独立出来,就是为了以后重装系统时保留用户数据,下面来操作。
设置虚拟机开机加载Ubuntu的系统镜像,然后设置从CD启动,具体步骤参照上面加载Gparted镜像的步骤,这样就进入了装系统的步骤,选择自定义选项,如下图:

这里写图片描述

可以看到之前已经分好的sda1,sda3,sda5三个分区,如图所示:

这里写图片描述

点击sda1分区选择ext4,不要改变分区大小,挂载点选择 /,如图所示:

这里写图片描述

点击sda3分区,选择ext4,不要改变分区大小,挂载点选择 /home,如图所示:

这里写图片描述

sda5是swap分区,不用管它,接着在/dev/sda1后面的是否格式化选框中勾选,但不要勾选/dev/sda3分区,否则/home分区会被格式化,那么用户数据就丢失了。如下图所示:

这里写图片描述

好了,接着就开始重装系统了,经过博主亲测,这样重装系统不会丢掉/home下面的数据,即使装了Ubuntu 16.04后重装Ubuntu 14.04也不会丢掉数据。
再也不用每次重装Linux都把所有数据都干掉了。

7 总结

博主是参考下面这篇文章来实践的,当然是英文的啦:

https://www./move-home-folder-ubuntu/

/home分区独立,经过博主亲手实践,写博客记录下来。转载请注明来自”梧桐那时雨”的博客。
如果你在实践中遇到什么问题,欢迎给我留言。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多