KAL1 LINUX 官方文档之安装器 ---BTRFS安装(更新于2022)
译者注:是什么btrfs文件系统,它是2007年Oracle开发,支持GPL协议,为了取代Linux早期的ext系列文件系统的下一代文件系统。https://blog.csdn.net/gongxifacai_believe/article/details/88706503
BTRFS 安装 (Kali Unkaputtbar)
您是否曾经希望在删除所有重要的客户报告或安装损坏的驱动程序之后,在进入董事会会议之前,您可以及时回到过去?
好吧,你最好继续读下去,因为现在你可以了!
只需使用 btrfs 作为文件系统安装 Kali Linux 2022.1 或更高版本,并在安装后启用快照。
您甚至可以通过启动菜单启动任何已保存的快照并轻松回滚到以前的系统状态:
内容
概述
btrfs是用于 Linux 的现代写入时复制 (CoW) 文件系统,旨在实现池、快照、校验和和集成多设备跨越等高级功能。特别是,快照支持使 btrfs 对裸机上的 Kali 安装具有吸引力。VMware 和 VirtualBox 等虚拟化解决方案提供了它们自己的快照功能,并且实际上并不需要在这些环境中使用 btrfs。
本演练的快照策略围绕我们在 SUSE 的朋友提供的一个名为“snapper”的工具展开。Snapper 透明地连接到 apt 工作流程,并在任何 apt 操作之前和之后自动创建快照。这个简洁的小功能允许在升级失败后轻松回滚系统。
最重要的是,我们添加了Antynea的grub-btrfs以自动将快照列表添加到 grub 启动菜单。
Ricardo Vieira的Snapper-gui是我们用来让生活更轻松的另一个很棒的工具。
安装概述
使用快照功能安装 Kali Linux 与标准安装非常相似,只是我们使用 btrfs 作为文件系统安装它。
安装后,我们将安装一些工具并为 snapper 创建一个默认配置。
分区方案
选择“ BTRF”作为文件系统时,安装程序将自动创建以下子量图:
Mount Point | Subvolume | Description
-------------------------------------------------------------------------
/ | @ | The root filesystem incl. /boot
/.snapshots | @.snapshots | Snapper's snapshot directory
/home | @home | User home directories
/root | @root | The root user's home directory
/var/log | @var@log | Log files
/srv | @srv | Site-specific data served by this system
/tmp | @tmp | Temporary files
/usr/local | @usr@local | Tertiary hierarchy for local data
Kali Linux BTRFS 安装步骤
Kali Linux 安装程序
- 要开始安装,请使用您选择的安装介质启动。你应该会看到 Kali Boot 屏幕。选择图形安装。
- 安装步骤与默认 Kali 安装相同,只是将“ext4”更改为“btrfs”作为文件系统:
在“分区磁盘”屏幕上,选择“引导 - 使用整个磁盘”:
点击“继续”:
双击/
分区:
选择“btrfs”:
选择“完成设置分区”并继续:
选择“完成分区并将更改写入磁盘”并继续安装。
- 安装后登录并在终端中运行以下命令:
# Set a secure root password or you'll struggle to log into a recovery shell
$ sudo passwd
# Install some essential tools
$ sudo apt update && sudo apt install btrfs-progs snapper snapper-gui grub-btrfs
# Create the snapper configuration for the root filesystem "/"
$ sudo cp /usr/share/snapper/config-templates/default /etc/snapper/configs/root
$ sudo sed -i 's/^SNAPPER_CONFIGS=\"\"/SNAPPER_CONFIGS=\"root\"/' /etc/default/snapper
# Prevent "updatedb" from indexing the snapshots, which would slow down the system
$ sudo sed -i '/# PRUNENAMES=/ a PRUNENAMES = ".snapshots"' /etc/updatedb.conf
- 我们需要调整桌面管理器以在只读快照中工作。从以下选择您的 DE:
侏儒:
# Reconfigure gdm to allow booting into read-only snapshots
# GDM needs to have write access to "/var/lib/gdm3" and "/var/lib/AccountService" during login.
# We have to create additional subvolumes for them:
$ mount # Pick your main partition, </dev/sda1> in our example, replace </dev/sda1> it with yours
$ sudo mount </dev/sda1> /mnt
$ sudo btrfs subvolume create /mnt/@var@lib@gdm3
$ sudo btrfs subvolume create /mnt/@var@lib@AccountsService
$ sudo mv /var/lib/gdm3/* /var/lib/gdm3/.*/mnt/@var@lib@gdm3
$ sudo mv /var/lib/AccountsService/* /var/lib/AccountsService/.* /mnt/@var@lib@AccountsService/
$ sudo vi /etc/fstab # Add the following (substitute the <UUID> with yours)
# /var/lib/gdm3 was on /dev/sda1 during installation
UUID=<dc1ca012-9349-4fcf-b761-ca323379b019> /var/lib/gdm3 btrfs defaults,subvol=@var@lib@gdm3 0 0
# /var/lib/AccountsService was on /dev/sda1 during installation
UUID=<dc1ca012-9349-4fcf-b761-ca323379b019> /var/lib/AccountsService btrfs defaults,subvol=@var@lib@AccountsService 0 0
# Reboot for the changes to take effect
$ sudo reboot
KDE:
# KDE works out of the box, just reboot and enjoy
$ sudo reboot
XFCE:
# Reconfigure lightdm to allow booting into read-only snapshots
$ sudo sed -i 's/^#user-authority-in-system-dir=false/user-authority-in-system-dir=true/' /etc/lightdm/lightdm.conf
$
$ sudo reboot
- 第一次重新启动将创建第一个自动快照。再次重新启动以找到此快照的新启动菜单条目:
恭喜,您刚刚安装了具有自动快照功能的 Kali 系统!接下来,我们将介绍一些基本的使用示例。
用法
修改配置
开箱即用的 Kali 创建根目录的快照以允许系统回滚。快照会在 apt 操作期间、以指定的时间间隔以及每次启动时自动创建。可以通过“snapper-gui”工具更改配置。只需单击左上角的小图标,然后选择“属性”:
创建其他配置
要创建主目录的快照,您可以使用 snapper-gui 创建新配置。
点击“新建”->“创建配置”
创建快照
要使用 snapper-gui 手动创建快照,请选择适当的配置选项卡(在本例中为主页),然后单击“新建”->“创建快照”
列出快照
snapper-gui 中列出了快照:
或者,可以使用snapper
命令行工具查看所有配置的快照:
$ sudo snapper list -a
删除快照
删除快照的最简单方法是使用 snapper 命令行工具:
sudo snapper delete <number-or-number-range>
瞧,很简单。
现在可能是通过以下方式浏览 snapper 命令行选项的正确时机:
snapper --help
回滚
要回滚到以前的快照,我们必须记住两件事:
- 文件系统的根目录
/
已安装在子卷中/@"
,而不是 btrfs 分区的根目录/
- 快照被视为只是另一个子卷,只是它们是只读的
- 您可以轻松启动只读快照以找到要回滚到的快照。
@
因此,我们所要做的就是挂载 btrfs 分区并用最后一个快照替换当前的根子卷。为了安全起见,我们将备份当前的根 ( @
) 子卷。
例如:
# get the device that contains your "/" subvolume and remember it for the next step:
mount | grep 'subvol=/@)'
# mount your root partition (replace "/dev/sda2" with yours from above):
sudo mount /dev/sda2 -o subvol=/ /mnt
# Move the old root away:
sudo mv /mnt/@ /mnt/@_badroot
# Roll back to a previous snapshot by creating a read-write copy of it as "@"":
sudo btrfs subvolume snapshot /mnt/@.snapshots/XXXXX/snapshot /mnt/@
# That's it, reboot:
sudo reboot -f
差异
Snapper 具有强大的功能,例如快照之间的差异:
浏览快照
您甚至可以浏览快照的内容:
从无法启动的系统中完全恢复
启动到最后一个已知良好的快照
假设上次升级破坏了我们的机器。每次运行“apt install”都会创建快照,安装前会创建一个“pre”快照,安装后会创建一个“post”快照。
要撤消最后一次“apt upgrade”,我们将启动到最后一个“pre”快照并检查一切是否再次正常工作:
现在您可以登录到快照。
请注意,快照是只读的,登录后您可能会从一两个小程序收到错误消息。请忽略它。
环顾四周,确保这是您想要回滚的内容。
回滚
请记住,“/”本身就是子卷“@”。要回滚到快照,我们所要做的就是将“@”替换为我们想要的快照。
- 首先,我们必须挂载包含所有子卷的物理分区。让我们先找到它
mount | grep 'subvol='
然后挂载它(在本例中为 /dev/sda2:
sudo mount /dev/sda2 -o subvol=/ /mnt
如果我们列出该分区的内容,我们可以看到所有子卷,包括包含我们的快照的子卷:
- 在我们用我们的快照替换当前根之前,为了安全起见,让我们把“@”移开:
sudo mv /mnt/@ /mnt/@_old
- 现在我们可以创建当前只读快照的读写快照(在这个例子中,我们根据上面的查询启动到只读快照“6”):
sudo btrfs subvolume snapshot /mnt/@.snapshots/6/snapshot /mnt/@
这就是它的全部内容,现在我们可以重新启动,就好像我们漂亮的机器没有发生任何事情一样:
参考
更新日期:2022 年 7 月 26 日
作者: re4son