专栏首页linux百科小宇宙技术|使用 LVM 升级 Fedora
原创

技术|使用 LVM 升级 Fedora

大多数用户发现使用标准流程升级从一个Fedora版本升级到下一个很简单。但是,Fedora升级也不可避免地会遇到许多特殊情况。本文介绍了使用DNF和逻辑卷管理(LVM)进行升级的一种方法,以便在出现问题时保留可引导备份。这个例子是将Fedora26系统升级到Fedora28。

此处展示的过程比标准升级过程更复杂。在使用此过程之前,你应该充分掌握LVM的工作原理。如果没有适当的技能和细心,你可能会丢失数据和/或被迫重新安装系统!如果你不知道自己在做什么,那么强烈建议你坚持只使用得到支持的升级方法。

准备系统在开始之前,请确保你的现有系统已完全更新。

$sudodnfupdate$sudosystemctlreboot#或采用GUI方式检查你的根文件系统是否是通过LVM挂载的。

$df/Filesystem1K-blocksUsedAvailableUse%Mountedon/dev/mapper/vg_sdg-f262051131214879816456653677%/$sudolvsLVVGAttrLSizePoolOriginData%Meta%MoveLogCpy%SyncConvertf22vg_sdg-wi-ao----15.00gf24_64vg_sdg-wi-ao----20.00gf26vg_sdg-wi-ao----20.00ghomevg_sdg-wi-ao----100.00gmockcachevg_sdg-wi-ao----10.00gswapvg_sdg-wi-ao----4.00gtestvg_sdg-wi-a-----1.00gvg_vmvg_sdg-wi-ao----20.00g如果你在安装Fedora时使用了默认值,你可能会发现根文件系统挂载在名为root的逻辑卷(LV)上。卷组(VG)的名称可能会有所不同。看看根卷的总大小。在该示例中,根文件系统名为f26,大小为20G。

接下来,确保LVM中有足够的可用空间。

$sudovgsVG#PV#LV#SNAttrVSizeVFreevg_sdg180wz--n-232.39g42.39g该系统有足够的可用空间,可以为升级后的Fedora28的根卷分配20G的逻辑卷。如果你使用的是默认安装,则你的LVM中将没有可用空间。对LVM的一般性管理超出了本文的范围,但这里有一些情形下可能采取的方法:

1、/home在自己的逻辑卷,而且/home中有大量空闲空间。

你可以从图形界面中注销并切换到文本控制台,以root用户身份登录。然后你可以卸载/home,并使用lvreduce-r调整大小并重新分配/home逻辑卷。你也可以从现场镜像Liveimage启动(以便不使用/home)并使用gpartedGUI实用程序进行分区调整。

2、大多数LVM空间被分配给根卷,该文件系统中有大量可用空间。

你可以从现场镜像启动并使用gpartedGUI实用程序来减少根卷的大小。此时也可以考虑将/home移动到另外的文件系统,但这超出了本文的范围。

3、大多数文件系统已满,但你有个已经不再需要逻辑卷。

你可以删除不需要的逻辑卷,释放卷组中的空间以进行此操作。

创建备份首先,为升级后的系统分配新的逻辑卷。确保为系统的卷组(VG)使用正确的名称。在这个例子中它是vg_sdg。

$sudolvcreate-L20G-nf28vg_sdgLogicalvolume"f28"created.接下来,创建当前根文件系统的快照。此示例创建名为f26_s的快照卷。

$sync$sudolvcreate-s-L1G-nf26_svg_sdg/f26Usingdefaultstripesize64.00KiB.Logicalvolume"f26_s"created.现在可以将快照复制到新逻辑卷。当你替换自己的卷名时,请确保目标正确。如果不小心,就会不可撤销地删除了数据。此外,请确保你从根卷的快照复制,而不是从你的现在的根卷。

$sudoddif/dev/vg_sdg/f26_sof/dev/vg_sdg/f28bs256k81920+0recordsin81920+0recordsout21474836480bytes(21GB,20GiB)copied,149.179s,144MB/s给新文件系统一个唯一的UUID。这不是绝对必要的,但UUID应该是唯一的,因此这避免了未来的混淆。以下是在ext4根文件系统上的方法:

$sudoe2fsck-f/dev/vg_sdg/f28$sudotune2fs-Urandom/dev/vg_sdg/f28然后删除不再需要的快照卷:

$sudolvremovevg_sdg/f26_sDoyoureallywanttoremoveactivelogicalvolumevg_sdg/f26_s?[y/n]:yLogicalvolume"f26_s"successfullyremoved如果你单独挂载了/home,你可能希望在此处制作/home的快照。有时,升级的应用程序会进行与旧版Fedora版本不兼容的更改。如果需要,编辑旧根文件系统上的/etc/fstab文件以在/home上挂载快照。请记住,当快照已满时,它将消失!另外,你可能还希望给/home做个正常备份。

配置以使用新的根首先,安装新的逻辑卷并备份现有的GRUB设置:

$sudomkdir/mnt/f28$sudomount/dev/vg_sdg/f28/mnt/f28$sudomkdir/mnt/f28/f26$cd/boot/grub2$sudocp-pgrub.cfggrub.cfg.old编辑grub.conf并在第一个菜单项menuentry之前添加这些,除非你已经有了:

menuentry'Oldbootmenu'{configfile/grub2/grub.cfg.old}编辑grub.conf并更改默认菜单项以激活并挂载新的根文件系统。改变这一行:

linux16/vmlinuz-4.16.11-100.fc26.x86_64root/dev/mapper/vg_sdg-f26rord.lvm.lvvg_sdg/f26rd.lvm.lvvg_sdg/swaprhgbquietLANGen_US.UTF-8如你看到的这样。请记住使用你系统上的正确的卷组和逻辑卷条目名称!

linux16/vmlinuz-4.16.11-100.fc26.x86_64root/dev/mapper/vg_sdg-f28rord.lvm.lvvg_sdg/f28rd.lvm.lvvg_sdg/swaprhgbquietLANGen_US.UTF-8编辑/mnt/f28/etc/default/grub并改变在启动时激活的默认的根卷:

GRUB_CMDLINE_LINUX"rd.lvm.lvvg_sdg/f28rd.lvm.lvvg_sdg/swaprhgbquiet"编辑/mnt/f28/etc/fstab,将挂载的根文件系统从旧的逻辑卷:

/dev/mapper/vg_sdg-f26/ext4defaults11改为新的:

/dev/mapper/vg_sdg-f28/ext4defaults11然后,出于参考的用途,只读挂载旧的根卷:

/dev/mapper/vg_sdg-f26/f26ext4ro,nodev,noexec00如果你的根文件系统是通过UUID挂载的,你需要改变这个方式。如果你的根文件系统是ext4你可以这样做:

$sudoe2label/dev/vg_sdg/f28F28现在编辑/mnt/f28/etc/fstab使用该卷标。改变该根文件系统的挂载行,像这样:

LABELF28/ext4defaults11重启与升级重新启动,你的系统将使用新的根文件系统。它仍然是Fedora26,但是是带有新的逻辑卷名称的副本,并可以进行dnf系统升级!如果出现任何问题,请使用旧引导菜单引导回到你的工作系统,此过程可避免触及旧系统。

$sudosystemctlreboot#orGUIequivalent...$df//f26Filesystem1K-blocksUsedAvailableUse%Mountedon/dev/mapper/vg_sdg-f282051131214903196454315677%//dev/mapper/vg_sdg-f262051131214866412457994077%/f26你可能希望验证使用旧的引导菜单确实可以让你回到挂载在旧的根文件系统上的根。

现在按照此维基页面中的说明进行操作。如果系统升级出现任何问题,你还会有一个可以重启回去的工作系统。

进一步的考虑创建新的逻辑卷并将根卷的快照复制到其中的步骤可以使用通用脚本自动完成。它只需要新的逻辑卷的名称,因为现有根的大小和设备很容易确定。例如,可以输入以下命令:

$sudocopyfs/f28提供挂载点以进行复制可以更清楚地了解发生了什么,并且复制其他挂载点(例如/home)可能很有用。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Fedora32 Server版安装与初体验

    Fedora 是一个 Linux 发行版,Fedora(The Flexible Extensible Dig Object and Repository Ar...

    yuanfan2012
  • Red Hat Enterprise Linux 7.0

    Red Hat Enterprise Linux是Red Hat公司的Linux发行版,面向商业市场,包括大型机。红帽公司从Red Hat Enterprise...

    小小科
  • Red Hat Enterprise Linux 7.0

    Red Hat Enterprise Linux是Red Hat公司的Linux发行版,面向商业市场,包括大型机。红帽公司从Red Hat Enterprise...

    小小科
  • Linux就该这么学

    本书源自日均阅读量近万次火爆的线上同名课程,口碑与影响力俱佳,旨在打造简单易学且实用性强的轻量级Linux入门教程。

    用户3157710
  • lvm - Logical Volume Manager - 逻辑卷管理

    下午突然感觉 lvm 相关的知识忘记了,恰好机房里的fedora服务器上 挂了4个500GB的HDD 硬盘没有使用,就拿来操作了一番;

    xuyaowen
  • Linux 系统运维工具 OpenLMI

    OpenLMI(全称 Open Linux Management Infrastructure)顾名思义就是开放式的 Linux 管理基础架构。OpenLMI...

    shaonbean
  • 在Ubuntu 20.04 实现独立 cockpit; 启用LVM 特征

    我经常使用cockpit进行管理服务器。https://cockpit-project.org/;这是历史遗留原因。这种方式是之前本科毕业去 RedHat Be...

    xuyaowen
  • 通过Web来管理你的Linux——Cockpit admin console

    这两天在玩Fedora 26,发现了一个工具Admin Console,先上图,看看都有那些功能:

    力哥聊运维与云计算
  • Linux 系统上交换空间的介绍

    当今无论什么操作系统交换Swap空间是非常常见的。Linux 使用交换空间来增加主机可用的虚拟内存。它可以在常规文件或逻辑卷上使用一个或多个专用交换分区或交换文...

    用户8705041
  • Ubuntu和Fedora,哪个更对你的胃口?

    简介:Ubuntu还是Fedora?有什么不同?哪个更好?您应该使用哪一个?阅读Ubuntu和Fedora的比较。

    用户6543014
  • Centos能不能替换RHEL?

    这是来自杨大师的文章《Centos能不能替换RHEL?》,普及了下Linux的版本知识。

    bisal
  • VMware 中 Linux 调整分区大小

    Precondition :VMware Player 中安装的Fedora 17 Linux 32bit,个人较久远的测试环境,安装时没有进行磁盘规划,默认2...

    gigiwangs
  • Linux基础——RAID和LVM

    L宝宝聊IT
  • Linux系统交换空间介绍

    交换空间是当今计算的一个共同方面,不管操作系统如何。Linux使用交换空间来增加主机可用的虚拟内存量。它可以在常规文件系统或逻辑卷上使用一个或多个专用交换分区或...

    砸漏
  • Linux 逻辑卷管理(LVM)使用方法总结

    管理磁盘空间对系统管理员来说是一件重要的日常工作。一旦磁盘空间耗尽就需要进行一系列耗时而又复杂的任务,以提升磁盘分区中可用的磁盘空间。它也需要系统离线才能处理。...

    砸漏
  • Linux系统LVM磁盘扩容(XFS文件系统)

    LVM是 Logical Volume Manager(逻辑卷管理)的简写,它由Heinz Mauelshagen在Linux 2.4内核上实现。LVM将一个或...

    子润先生
  • Linux系统LVM磁盘扩容(XFS文件系统)

    LVM是 Logical Volume Manager(逻辑卷管理)的简写,它由Heinz Mauelshagen在Linux 2.4内核上实现。LVM将一个或...

    子润先生
  • 文件系统fsck提速方案

    在分布式文件系统(例如HDFS)中,当出现异常掉电、加电恢复后,通常存储系统会检测内部数据的一致性,检测分为两个层次

    用户1593318
  • Linux 下的两种分层存储方案

    在存储设备中,使用分层技术,将冷热数据自动分层存放在具有不用读写性能的存储介质上,已经是很普遍的做法,比如 IBM 的 DS8K 中使用的 Easy Tier。...

    小小科

扫码关注云+社区

领取腾讯云代金券