前言
在前一篇的在Mac上安装Gentoo Linux完成后,我其实还想要折腾一下其他的文件系统比如说ZFS,BTRFS,XFS之类的,虽然说可以在虚拟机里面做实验但是还是想要整个机器切过去,但是重新安装的话耗费的时间太长了,我想备份一下系统然后重新分区之后将原来的系统恢复一下再更新一下fstab bootload之类的就可以正常使用了。
这篇文章就是讲述如何备份你的Gentoo Linux(离线备份)
准备
- 250G硬盘*1 (我当前的数据量在200G左右250G的硬盘能够满足一次备份,后续如果要做周期性备份的话就需要换一个更大的了)
备份
初始化硬盘
这里的初始化硬盘是为了将原来的数据全部清除并且重新建立LUKS和文件系统。出于安全的考虑,备份不应该直接在硬盘上分区创建文件系统后备份在上面,应该做一层加密再去创建文件系统和备份。
将硬盘插入需要备份的电脑上
查看新增的设备
1
2
3
4
5
6
7
8
9
10
11
| fdisk -l
Disk /dev/sda: 232.9 GiB, 250055122432 bytes, 488388911 sectors
Disk model: 00AAJS-00B4A0
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x80f01a9c
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 488388910 488386863 232.9G 83 Linux
|
这里可以看到新添加的磁盘,上面是有以前的东西,这里为了安全起见用随机数据覆盖掉这个分区。
这里会清除可能存在的任何没有加密的旧数据,如果遭受攻击这会让攻击者更难确定数据位置,这一步会很慢(取决于你的接口速度和硬盘速率)。
1
| sudo dd if=/dev/urandom of=/dev/sda bs=1M status=progress && sync
|
完成之后,我们需要重新对这个硬盘进行分区
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| sudo fdisk /dev/sda
Welcome to fdisk (util-linux 2.35.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p):
Using default response p.
Partition number (1-4, default 1):
First sector (2048-488388910, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-488388910, default 488388910):
Created a new partition 1 of type 'Linux' and of size 232.9 GiB.
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
|
这样就创建了一个分区,接下来我们要在这个分区上创建LUKS
创建LUKS
我们这里可以使用cryptsetup
这个命令来初始化我们的LUKS分区
如果你没有这个命令可以运行这条命令进行安装:
然后初始化分区
1
2
3
4
5
6
7
8
| sudo sudo cryptsetup luksFormat /dev/sda1
WARNING!
========
This will overwrite data on /dev/sda1 irrevocably.
Are you sure? (Type 'yes' in capital letters): YES
Enter passphrase for /dev/sda1:
Verify passphrase:
|
这里会提示这个操作将会将这个分区里面的内容全部删掉,输入大写的YES确认,然后输入两次密码,注意密码是没有回显的。
打开LUKS和创建文件系统
现在是LUKS已经做好了,但是我们还需要在上面格式化分区才能够挂载使用,我们首先要打开LUKS分区:
1
2
3
| sudo cryptsetup luksOpen /dev/sda1 backup
Password:
Enter passphrase for /dev/sda1:
|
我这里是想打开这个LUKS卷,为了区分和其他的我给这个名字叫做backup,然后会提示你输入LUKS的密码,正确输入之后就可以在/dev/mappaer
下面看到一个backup
的设备了
现在对这个分区进行格式化,这次用的是ext4的分区
1
| sudo mkfs.ext4 -v /dev/mapper/backup
|
创建挂载点和挂载
在完成了分区初始化之后我们还需要创建一个挂载点用于挂载这个备份的分区:
挂载分区:
1
| sudo mount -v /dev/mapper/backup /backup
|
备份系统
下载就可以备份系统了,这次使用的是rsync
工具来进行备份系统:
1
| sudo rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found","/backup/*","/swapfile"} / /backup
|
这里使用的-aAXv
选项的意思是:文件将会以归档模式传输,保留符号设备,文件权限,修改时间,ACL和扩展属性,并且将备份的过程打印在屏幕上。
--exclude
就是排除特定的文件类似于/dev
、/proc
之类的,/backup
是我们的备份分区不需要再去搞一份防止出现奇奇怪怪的后果。
这会耗费很多时间可以休息一下做其他的事情。
等待这个备份完成之后我们就可以卸载这块硬盘进行保存了。
卸载挂载点
关闭LUKS分区
1
| cryptsetup luksClose backup
|
这个时候就可以将硬盘从机器上拔掉了,至于如何使用请期待下篇在Gentoo上吃上ZFS的文章~
后记
备份是很重要的一环,像是误删除文件,硬件故障导致没办法正常工作,或者是想要取出一些历史的数据出来,这个时候备份就相当的重要了,这里这篇文章只是一个非常基础的备份方法。这种备份属于是一种离线备份的方式,当然也有在线备份的方式,这个就是后续再去尝试的一些内容了。玩的开心~