分区表格式转换工具-(分区表格式转换工具在哪)

来源:191路由网 2022-11-21 09:29:36

分区表格式转换工具 (分区表格式转换工具在哪) 路由知识

引言

这篇概述文章将告诉你为何以及如何迁移你的当前分区到 Btrfs 文件系统。如果你对此感兴趣,请阅读这篇分步指南来完成。

从 Fedora 33 开始,新安装的 Fedora 操作系统默认文件系统为 Btrfs。我确信大部分用户现在已经听说了它的优势:写时复制、内置校验、灵活的压缩方式、简易的快照和回滚方式。它确实是一个现代化的文件系统,为桌面存储带来新的功能。

在升级到 Fedora 33 后,我想利用 Btrfs 的优势,但对我个人来说,我不想因为“只是为了改变文件系统”而去重装整个系统。我发现(只有)寥寥无几的具体如何做转换的教程,所以我决定在这里分享我的详细经验。

小心!

这样做你是在玩火。希望你阅读以下内容时不要感到惊讶:

在编辑分区和转换文件系统时,你的数据可能会被破坏和丢失。最终,你可能会得到一个不能启动的操作系统,并面临数据恢复的风险。你可能会无意删除你的分区,或者以其它方式破坏了你的操作系统。

这些转换过程即使对于生产系统来说也是安全的 —— 前提是你提前做好了计划,对关键数据做好了备份和回滚计划。作为一个 可以执行超级权限的系统管理员,你可以在没有限制、没有任何常规安全防护措施的情况下,做任何事情。

安全的方式:重装 Fedora

重装操作系统是转换文件系统到 Btrfs 的 “官方” 方式,推荐给大多数用户使用。因此,如果在这个教程中有那么一点不确定,就选择这种方式。步骤大致如下:

备份你的主文件夹和你系统中可能会用到的任何数据,比如 /etc。(编者按:虚拟机也是这样)将已安装的安装包以列表形式保存到到文件中。重新安装 Fedora,删除你当前的分区,并选择新的 Btrfs 默认分区方案。恢复主文件夹的内容,并使用软件包列表文件重装软件包。

对于详细的步骤和命令,请看一位社区用户在 ask.fedoraproject.org站点的评论。如果正确完成,你将得到一个和之前一样的操作系统,使丢失数据的风险最小化。

转换的利弊

让我们快速澄清一下:这种文件系统转换有什么优势和劣势?

优势:

当然,不需要重新安装!你的系统里的所有文件和之前一模一样。技术上来说,没有备份的情况下,就地进行是可能的。你会学到许多关于 Btrfs 的知识!如果所有都按计划进行,会是相当快的一个过程。

劣势:

你必须熟悉终端环境和 shell 命令。你可能会丢失数据,参见上文。如果出了什么问题,你得自己解决。

特别之处:

你需要大约 20% 的可用磁盘空间才能成功转换。但对于完整的备份和重装方式,你可能需要的空间更多。你可以在转换过程中自定义你分区的所有参数,但如果选择重装,你也可以从 Anaconda 自定义。

LVM 怎么办?

在近期几次 Fedora 安装中,LVM 布局一直是默认的。如果你有一个带有多个分区(例如 //home)的 LVM 分区布局,你得以某种方式合并它们,来获得 Btrfs 所有性能。

如果选择这样做,你可以单独转换分区到 Btrfs 文件系统,同时保留卷组。然而,迁移到 Btrfs 文件系统的优势之一是摆脱 LVM 分区布局强加的限制。你也可以利用 Btrfs 文件系统提供的收发功能在转换后来合并分区。

另见 《Fedora 杂志》: 利用 LVM 回收硬盘空间、从 Btrfs 快照中恢复文件以及在 Btrfs 和 LVM-ext4 两者之间做选择。

了解 Btrfs

建议阅读以下内容对 Btrfs 文件系统是什么有一个基础的了解。如果你没有把握,只有选择重装 Fedora 这种安全的方式。

必须了解的:

Fedora Magazine:Btrfs 来到 Fedora 33Btrfs 系统管理指南,尤其是关于子卷和 flat 子卷布局。btrfs-convert 指南

有用的资源:

man 8 btrfs– 命令行界面man 5 btrfs– 挂载参数man btrfs-convert– 要用到的转换工具man btrfs-subvolume– 管理子卷

转换步骤创建一个实时镜像

由于不能转换已挂载的文件系统,我们将通过 Fedora 实时镜像Live Image进行。安装 Fedora 镜像写入工具,然后 “烧录” Fedora 33 到你的 U 盘中来创建实时镜像。

释放磁盘空间

btrfs-convert会在分区的剩余空间重新创建文件系统的元数据,同时保持所有已有的 ext4 文件系统数据还在它当前的位置上。

不幸的是,所需的剩余空间的大小无法提前知道:如果没有足够的空间,转换将会失败(但不会破坏数据)。这里有一些释放空间有用的方法:

利用 baobab来识别大容量的文件和文件夹,然后移除。如果可能的话,不要手动删除主文件夹以外的文件。清理旧的系统日志:journalctl –vacuum-size=100M。如果你正使用 Docker,请小心地使用类似 docker volume prunedocker image prune -a这样的工具。清理 GNOME Boxes 之类的虚拟机内不用的镜像。清理不用的软件包和 Flatpak 包:dnf autoremoveflatpak remove –unused。清理软件包缓存:pkcon refresh force -c -1dnf clean all。如果你有把握,你可以谨慎的清理 ~/.cache文件夹。

转换到 Btrfs

备份你所有有价值的数据,确保你的系统已完全更新,然后重启到实时镜像。运行 gnome-disks工具找到你所拥有的设备的路径,比如/dev/sda1(如果你在使用 LVM,它可能看起来有所不同)。检查文件系统然后执行转换:(编者按:以下命令使用 root 用户运行,谨慎使用!)

$ sudo su -# fsck.ext4 -fyv /dev/sdXX (请替换为你的具体的设备路径)# man btrfs-convert (阅读它)# btrfs-convert /dev/sdXX (请替换为你的具体的设备路径)

这将会花十几分钟甚至几个小时,依据分区的大小和是机械硬盘还是固态硬盘。如果你看到错误,你可能需要更多剩余空间。作为最后的手段,你可以尝试 btrfs-convert -n

怎样回滚?

如果因为某些原因转换失败,你的分区将保持在 ext4 文件系统或者它之前的状态。如果你想在成功转换之后回滚,简单如下:

# btrfs-convert -r /dev/sdXX

警告!如果你做了以下这些事情之一,你将永久失去回滚的功能:碎片整理、均衡或者删除ext2_saved子卷。

由于 Btrfs 文件系统的写时复制特性,你可以安全的复制/移动甚至删除文件、创建子卷,因为 ext2_saved会保持引用旧数据。

挂载和检查

现在这个分区应该已经有了 Btrfs 文件系统。挂载它然后查看你的文件……和子卷!

# mount /dev/sdXX /mnt (请替换为你的具体的设备路径)# man btrfs-subvolume (阅读它)# btrfs subvolume list / (使用 -t 以表格方式查看)

因为你已经阅读了 相关的手册页,你应该知道创建子卷快照是安全的,并且有ext2-saved子卷作为你之前数据的简易备份。

是时候阅读 Btrfs 系统管理指南了,这样你就不会把常规文件夹和子卷混淆了。

创建子卷

我们希望实现一个“扁平”子卷布局,这和 Anaconda 默认创建的布局相同:

toplevel (卷根目录,不能被默认挂载) +-- root (子卷根目录,被挂载到 /) +-- home (子卷根目录,被挂载到 /home)

你可以跳过这个步骤,或者使用一个不同的布局。这种特殊结构的优势是你可以轻松的创建 /home的快照,并且对每个子卷使用不同的压缩和挂载参数。

# cd /mnt# btrfs subvolume snapshot ./ ./root2# btrfs subvolume create home2# cp -a home/* home2/

这里我们已经创建了两个子卷。root2是一个完整的分区快照,而home2开始是一个空子卷,然后我们往里复制内容。(这个cp命令不会重复数据,所以会很快。)

/mnt目录(顶层子卷),删除除了root2home2ext2_saved之外的所有内容。重命名 root2home2子卷为roothome。在 root子卷里,清空home目录,以便之后我们能够挂载home子卷。

如果都做对了,那就很简单了!

修改 fstab 分区表

为了重启之后挂载新卷,必须要修改 fstab,用新的行来代替旧的 ext4 文件系统挂载行。

你可以使用 blkid命令来找到你的分区的 UUID。

UUID=xx / btrfs subvol=root 0 0 (请替换为你的具体 UUID)UUID=xx /home btrfs subvol=home 0 0 (请替换为你的具体 UUID)

(注意如果指向的是同一个分区,那么这两个 UUID 是相同的。)

这些都是新安装的 Fedora 33 的默认值。在 fstab中,你也可以选择自定义压缩和添加类似noatime这样的参数。

可以查看 关于压缩参数的维基页面和man 5 btrfs了解所有相关的参数。

chroot 到系统

如果你曾经做过系统恢复,我想你肯定知道这些命令。这里,我们将得到一个 基本上在你系统里的 shell 提示符,可以访问网络。

首先,我们必须重新挂载 root子卷到/mnt目录,然后挂载/boot/boot/efi分区(它们可能有所不同,这取决于你的文件系统布局):

# umount /mnt# mount -o subvol=root /dev/sdXX /mnt (请替换为你的具体的设备路径)# mount /dev/sdXX /mnt/boot (请替换为你的具体的设备路径)# mount /dev/sdXX /mnt/boot/efi (请替换为你的具体的设备路径)

然后我们继续挂载系统设备:

# mount -t proc /proc /mnt/proc# mount --rbind /dev /mnt/dev# mount --make-rslave /mnt/dev# mount --rbind /sys /mnt/sys# mount --make-rslave /mnt/sys# cp /mnt/etc/resolv.conf /mnt/etc/resolv.conf.chroot# cp -L /etc/resolv.conf /mnt/etc# chroot /mnt /bin/bash$ ping www.fedoraproject.org

重装 GRUB 及内核

最容易的方法就是重装 GRUB 和 内核,因为它完成了所有必要的配置 —— 现在我们可以访问网络了。所以,在 chroot 环境内部:

# mount /boot/efi# dnf reinstall 路由知识grub2-efi shim# grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg# dnf reinstall kernel-core...或者干脆重新生成 initramfs:# dracut --kver $(uname -r) --force

如果你是支持 UEFI 的系统,这里是适用的。如果你是 BIOS 的系统,请查看下面的文档。重启之前,让我们查看是否一切正常:

# cat /boot/grub2/grubenv# cat /boot/efi/EFI/fedora/grub.cfg# lsinitrd /boot/initramfs-$(uname -r).img | grep btrfs

你应该在 grubenvgrub.cfg有正确的分区 UUID 或指向(grubenv可能没有更新,如有必要可以编辑它),并在grub.cfg中看到insmod btrfs配置和在 initramfs 镜像中有 btrfs 模块。

参见: Fedora 系统管理指南中的 重装 GRUB 2和验证初始 RAM 磁盘镜像。

重启

现在系统能够正常启动。如果不能,别慌,回到实时镜像修复这个问题。最坏的情况下,你可以从那里重装 Fedora 。

首次启动之后

检查你的新 Btrfs 文件系统一切都正常。如果你觉得没问题,你需要回收旧的 ext4 快照使用的空间,进行碎片整理和平衡子卷。后两者可能要花一些时间,并且相当耗费资源。

对此你必须这样挂载顶级子卷:

# mount /dev/sdXX -o subvol=/ /mnt/路由知识someFolder# btrfs subvolume delete /mnt/someFolder/ext2_saved

然后,当机器有空闲时间时,运行这些命令:

# btrfs filesystem defrag -v -r -f /# btrfs filesystem defrag -v -r -f /home# btrfs balance start -m /

最后,有一个 “非写时复制” 属性,对于新系统,这个属性是为虚拟机镜像文件夹自动设置的。如果你使用虚拟机的话,可以设置它:

# chattr +C /var/lib/libvirt/images

$ chattr +C ~/.local/share/gnome-boxes/images

这个属性只会对在这些文件夹里的新文件生效。复制镜像并删除原镜像,你可以通过 lsattr确认结果。

总结

我真心希望你发现这个教程是有用的,并且能够对是否在你的系统上转换为 Btrfs 做出谨慎而明智的决定。祝你成功转换!

欢迎在评论中分享你的经验,或者遇到更深层次的问题,请在 ask.fedoraproject.org提问。

via: https://fedoramagazine.org/convert-your-filesystem-to-btrfs/

作者:Gergely Gombos选题:lujun9972译者:hwlife校对:wxy

本文由 LCTT原创编译,Linux中国荣誉推出

点击展开全文

相关阅读

u盘启动盘安装镜像文件选哪个-(u盘启动盘安装镜像文件选哪个好)

u盘启动盘安装镜像文件选哪个(u盘启动盘安装镜像文件选哪个好)u盘安装iso原版镜像,首先呢你准备一个大于8g的空u盘先把这个u盘插到你的电脑上咱们搜索u启动点击立即下载工具下载好之后咱们双击打开然后咱们点击接受然后咱们选择另一台电脑创建点击下一步再点击下一步默认它会选择你的u盘咱们直接点击下一步再选择下一步这个地方咱们等路由知识待进度...

2022-11-21

分区表格式转换工具-(分区表格式转换工具在哪)

分区表格式转换工具(分区表格式转换工具在哪)路由知识引言这篇概述文章将告诉你为何以及如何迁移你的当前分区到Btrfs文件系统。如果你对此感兴趣,请阅读这篇分步指南来完成。从Fedora33开始,新安装的Fedora操作系统默认文件系统为Btrfs。我确信大部分用户现在已经听说了它的优势:写时复制、内置校验、灵活的压缩方式...

2022-11-21

win7旗舰版一键装机教程-(win7旗舰版一键装机教程视频)

win7旗舰版一键装机教程(win7旗舰版一键装机教程视频)很多朋友想给自己电脑装上win10系统,不知道如何操作。一般情况下我们可以通过本地在线的安装方法或者是U盘重装的方法,但不管用哪种方法我们都需要对c盘和桌面的资料进行备份,这类就给大家分享一下重装电脑win10系统的详细步骤吧。更多小白一键重装系统官网_让电脑小白也会用的win11/win10/win7一键重装系统软件!教程尽在小白...

2022-11-21

u盘安装电脑不显示内存不足怎么办-(u盘安装电脑不显示内存不足怎么办)

u盘安装电脑不显示内存不足怎么办(u盘安装电脑不显示内存不足怎么办)当u盘显示容量为0,即所谓的u盘变成0字节的问题时,很多用户都无法理解,之前使用好好的u盘怎么会出现这种情况呢?下面我们一起来了解下u盘显示0...

2022-11-21

win7计算机打开慢-(win7计算机打开很慢)

win7计算机打开慢(win7计算机打开很慢)我们都知道,电脑使用久了之后,总是会出现这样或者那样的问题,最近有位win7系统用户反映,win7电脑反应速度很忙,操作起来感觉很不流畅,这让用户非常苦恼,那么win7电脑运行速度慢怎么呢?今天为大家分享win7电脑运行速度慢的解决方法。电脑运行速度慢解决方法:1、首先打开“运行”对话框路由知识,可以直接按键盘组合键(Win+R)来打开,输入命令“m...

2022-11-21

191路由网 - 192.168.1.1,192.168.0.1无线路由器设置教程

版权声明:本站的文章和图片来自互联网收集,仅做分享之用如有侵权请联系站长,我们将在24小时内删除