Ubuntu16-04备份重装成根目录可扩容LVM方式Linux系统

 Linux / Ubuntu / 磁盘阵列 / lvm
 

说明:为了区分原先系统和重装后系统以及述说方便,将原先系统称作Ubuntu1,重装后系统称作Ubuntu2。

先看一下我Ubuntu1的一些信息:

一、备份

进入Ubuntu1,输入su root切换root,将设备/dev/sdb1(选一个你机器上有空余空间未挂载的分区)挂载到/tmp。
终端输入tar -cvpzf /tmp/back/back.tgz / –exclude=/proc –exclude=/lost+found –exclude=/tmp –exclude=/sys –exclude=/media。

将Ubuntu1上所有挂载在/目录下的文件(除了/目录下proc、lost+found、tmp、sys和media文件夹)压缩在已挂载/dev/sdb1设备的目录/tmp的back文件夹下,并命名为back.tgz。

1
2
3
4
5
注意:
1. /tmp下的back文件夹须事先创建。
2. 备份时勿包括/dev/sdb1所挂载的目录(此处为/tmp)。
3. 记下那些备份时未包括进来的目录(即proc等),最后恢复时需要手动mkdir创建,否则系统会出错。
4. 最后压缩结束后可能会出现 tar: 由于前次错误,将以上次的错误状态退出。这个不用理会即可。

二、分配磁盘

右击此电脑–>管理

得到计算机管理窗口–>点击磁盘管理–>右键单击选择要压缩的磁盘

输入压缩空间量(MB)里填写要压缩出的空间量,我这里压缩50G–>压缩

注:这里得到未分配的磁盘为待会我们用Linux进行LVM式分区做准备。
(电脑若有有空闲空间的设备直接跳过此步骤到第三步进行分区)

三、分区

制作Ubuntu16.04的U盘启动盘,进入试用即LiveCD模式。
首先在终端输入sudo passwd root,改变试用系统下root用户的密码。
之后输入su root切换成root用户,之后的大多操作都需要root权限。

终端输入fdisk -l找到划分好有空闲空间的磁盘设备名。

我主机上有未分配磁盘空间的设备是/dev/sdb。所以终端输入fdisk /dev/sdb。输入n新建一个分区(/dev/sdb6)。
分区号为6–>分区起始扇区按回车默认设置–>分区终结扇区输入+49G,代表起始扇区往后数49G的扇区,意味给分区分配49G。
此分区待会制成lv时会分成给Ubuntu2的/、swap交换空间和/home对应的三个lv分区,此时先成一个就好,但需将分区类型标志改成LVM。

输入t改变分区标志–>分区号为6–>输入L查找代表LVM的代码–>查得30代表LVM,输入30,修改标志成功。

输入n新建另一个分区(sdb7)对应给Ubuntu2的/boot,分配剩下的1G给此分区,此分区不需要改成LVM,不改标志。

输入p查看分区是否正确,确认无误后输入w写入并退出fdisk。

终端输入partprobe更新分区信息。再输入fdisk -l /dev/sdb查看分区创建成功否。

四、创建PV、VG、LV

终端输入pvcreate /dev/sdb6创建pv,输入pvscan查看目前有哪些pv检查创建成功否。
终端输入vgcreate hgneer1 /dev/sdb6创建名字为hgneer1(随自己定义的名字)的vg,输入vgscan查看目前有哪些pv检查创建成功否。
终端输入lvcreate -L +25G -n root hgneer1(刚才创建的vg),表示创建一个大小为25G的/dev/mapper/hgneer1-root的lv分区,预定作为Ubuntu2的/对应的分区。
终端输入lvcreate -L +8G -n swap hgneer1(刚才创建的vg),表示创建一个大小为8G的/dev/mapper/hgneer1-swap的lv分区,预定作为Ubuntu2的swap交换空间对应的分区。
终端输入lvcreate -L +16G -n home hgneer1(刚才创建的vg),表示创建一个大小为16G的/dev/mapper/hgneer1-home的lv分区,预定作为Ubuntu2的/home对应的分区。
终端输入lvscan检查所需lv创建成功否。确认无误后,lvm分区真正创建。

五、重装系统

点击桌面上的“install Ubuntu16.04.3 LTS”开始安装


安装时选择其他选项,自行分区选择调整。

/dev/mapper/hgneer1-home分区挂载到/home目录,选中格式化成Ext4日志文件系统

/dev/mapper/hgneer1-root分区挂载到/目录,选中格式化成Ext4日志文件系统

/dev/mapper/hgneer1-swap分区作为swap交换空间

/dev/sdb7分区挂载到/boot目录,选中格式化成Ext4日志文件系统

另外注意安装启动引导器的设备选择挂载到/boot目录的/dev/sdb7,否则很可能无法引导出Linux系统!!!

等待安装成功后,先不要重启,继续试用,看新装上的系统Ubuntu2是否使用了LVM。
终端输入mount /dev/mapper/hgneer-root /mnt挂载Ubuntu2的/到试用系统的/mnt。
终端输入mount /dev/mapper/hgneer-home /mnt/home挂载Ubuntu2的/home到试用系统的/mnt/home。
终端输入mount /dev/sdb7 /mnt挂载Ubuntu2的/boot到试用系统的/mnt/boot。
cd到上面几个目录下看下,确定不为空系统成功装上后终端输入chroot /mnt将/mnt改成根目录,而后关机。

六、恢复数据及配置

重启进入Ubuntu2系统。将/etc/fstab文件及/boot目录备份到挂载了/dev/sdb1的/tmp的back文件夹中。
这些文件记载了Ubuntu2的启动信息以及Ubuntu2各重要目录所在的分区信息,
这些文件与Ubuntu1不一样的因此在之后解压备份文件后需要把这些文件替换到对应目录下。

重启进入liveCD(U盘启动盘试用)。照前文一样命令获取试用系统的root权限。
终端输入mount /dev/mapper/hgneer-root /mnt挂载Ubuntu2的/到试用系统的/mnt。
终端输入mount /dev/mapper/hgneer-home /mnt/home挂载Ubuntu2的/home到试用系统的/mnt/home。
终端输入mount /dev/sdb7 /mnt/boot挂载Ubuntu2的/boot到试用系统的/mnt/boot。
cd到/mnt目录后,终端输入ls | xargs rm -rf,删除Ubuntu2系统根目录下的全部目录及文件。
终端输入mount /dev/sdb1 /tmp挂载D盘到/tmp目录,cd到/tmp/back后终端输入tar -xvpf back.tgz -C /mnt。
最终目的将Ubuntu1的备份下数据文件解压到/mnt即Ubuntu2的根目录下。

等到解压完成后cd到/mnt后,终端输入mkdir proc lost+found tmp sys media,创建Ubuntu1备份时未选中的目录。
将备份在设备/dev/sdb1即现挂载在/tmp目录下的back文件夹中的fstab拷贝替换到/mnt/etc目录下。
将备份在设备/dev/sdb1即现挂载在/tmp目录下的back文件夹中的/boot文件夹中的文件拷贝到/mnt/boot目录下。
终端输入chroot /mnt转换/mnt当作根目录。

重启进入Ubuntu2,根目录可扩容且用户数据配置与Ubuntu1完全一致的Linux系统完成!