系统备份
系统备份是备份操作系统、文件和特定于系统的有用的/关键的数据的过程。(系统备份)主要确保除了系统中的用户数据,系统的状态或操作条件也已保存。这有助于使用选择的备份数据将系统恢复到之前保存的状态。
[1]
使用 Btrfs 快照[编辑 | 编辑源代码]
详情请看 Btrfs#快照、#快照与 /boot 分区和 Snapper。
使用 LVM 快照[编辑 | 编辑源代码]
详情请看 LVM#Snapshots、Create root filesystem snapshots with LVM 和 #快照与 /boot 分区。
使用 rsync[编辑 | 编辑源代码]
详情请看 rsync#As a backup utility。
使用 tar[编辑 | 编辑源代码]
详情请看 Full system backup with tar。
使用 SquashFS[编辑 | 编辑源代码]
详情请看 Full system backup with SquashFS。
可启动的备份[编辑 | 编辑源代码]
在文件系统损坏或系统因更新而损坏的情况下,有一个可启动的备份非常有用。备份还可以启用testing软件仓库,并用于测试更新。在您将系统迁移到不同的分区或驱动器之后,只需更新备份的 /etc/fstab
和引导加载程序的配置文件,就可以从迁移后的系统启动了。
在您在已将系统备份到另一个驱动器或分区,且当前的引导加载程序工作正常的情况下,接下来的操作将指导您如何从备份的系统启动。
更新 fstab[编辑 | 编辑源代码]
不需要重新启动,可以通过注释掉或删除任何现有条目来编辑备份的 fstab 文件。为包含备份的分区添加一个条目,如下例所示:
/dev/sdaX / ext4 defaults 0 1
记得使用正确的设备名和文件系统类型。
更新引导程序的配置文件[编辑 | 编辑源代码]
对于 Syslinux,你只需复制当前项目,不过使其指向不同的磁盘或分区。
syslinux.cfg
,您也可以在启动的时候临时编辑启动菜单。当显示启动菜单的时候,按 Tab
键来编辑对应的启动项。分区从1数起,而驱动器从0数起。对于 GRUB,建议你自动重新生成主配置文件。如果你想将 GRUB 文件全新安装到 /boot
以外的位置(例如 /mnt/newroot/boot
),使用 --boot-directory
标志。
请注意检查 /boot/grub/grub.cfg
中的启动项,确保其中的 UUID 与新分区相匹配,否则设备将仍然从原系统中启动。您可以通过 lsblk 命令来找到正确的UUID:
$ lsblk -no NAME,UUID /dev/sdXY
/dev/sdXY
是您备份的目标分区 (比如 /dev/sdb3
)要列出所有 GRUB 可启动的分区,请使用 grep 命令:
# grep UUID= /boot/grub/grub.cfg
第一次启动[编辑 | 编辑源代码]
重启计算机并在引导程序中选择正确的项目。系统应该会在第一次启动的时候检测到所有外部设备并填充根目录下的空文件夹。
你现在可以编辑 /etc/fstab
,将之前删除的分区和挂载点重新加入。
快照与 /boot 分区[编辑 | 编辑源代码]
如果你的文件系统支持快照(例如 LVM 和 Btrfs),这些快照将很可能不包含 /boot
分区或 EFI 系统分区。
进行内核升级时,您可以用 pacman hook 来把升级后的内核自动复制启动分区到 root
分区(请确保该钩子文件为 root 所有) :
/etc/pacman.d/hooks/95-bootbackup.hook
[Trigger] Operation = Upgrade Operation = Install Operation = Remove Type = Path Target = usr/lib/modules/*/vmlinuz [Action] Depends = rsync Description = Backing up /boot... When = PostTransaction Exec = /usr/bin/rsync -a --delete /boot /.bootbackup