自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何使用LVM升級Fedora

系統(tǒng) Linux
大多數用戶發(fā)現使用標準流程升級從一個 Fedora 版本升級到下一個很簡單。但是,Fedora 升級也不可避免地會遇到許多特殊情況。本文介紹了使用 DNF 和邏輯卷管理(LVM)進行升級的一種方法,以便在出現問題時保留可引導備份。這個例子是將 Fedora 26 系統(tǒng)升級到 Fedora 28。

[[274272]]

大多數用戶發(fā)現使用標準流程升級從一個 Fedora 版本升級到下一個很簡單。但是,Fedora 升級也不可避免地會遇到許多特殊情況。本文介紹了使用 DNF 和邏輯卷管理(LVM)進行升級的一種方法,以便在出現問題時保留可引導備份。這個例子是將 Fedora 26 系統(tǒng)升級到 Fedora 28。

此處展示的過程比標準升級過程更復雜。在使用此過程之前,你應該充分掌握 LVM 的工作原理。如果沒有適當的技能和細心,你可能會丟失數據和/或被迫重新安裝系統(tǒng)!如果你不知道自己在做什么,那么強烈建議你堅持只使用得到支持的升級方法。

準備系統(tǒng)

在開始之前,請確保你的現有系統(tǒng)已完全更新。

  1. $ sudo dnf update
  2. $ sudo systemctl reboot # 或采用 GUI 方式

檢查你的根文件系統(tǒng)是否是通過 LVM 掛載的。

  1. $ df /
  2. Filesystem 1K-blocks Used Available Use% Mounted on
  3. /dev/mapper/vg_sdg-f26 20511312 14879816 4566536 77% /
  4.  
  5. $ sudo lvs
  6. LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
  7. f22 vg_sdg -wi-ao---- 15.00g
  8. f24_64 vg_sdg -wi-ao---- 20.00g
  9. f26 vg_sdg -wi-ao---- 20.00g
  10. home vg_sdg -wi-ao---- 100.00g
  11. mockcache vg_sdg -wi-ao---- 10.00g
  12. swap vg_sdg -wi-ao---- 4.00g
  13. test vg_sdg -wi-a----- 1.00g
  14. vg_vm vg_sdg -wi-ao---- 20.00g

如果你在安裝 Fedora 時使用了默認值,你可能會發(fā)現根文件系統(tǒng)掛載在名為 root 的邏輯卷(LV)上。卷組(VG)的名稱可能會有所不同??纯锤淼目偞笮 T谠撌纠?,根文件系統(tǒng)名為 f26,大小為 20G。

接下來,確保 LVM 中有足夠的可用空間。

  1. $ sudo vgs
  2. VG #PV #LV #SN Attr VSize VFree
  3. vg_sdg 1 8 0 wz--n- 232.39g 42.39g

該系統(tǒng)有足夠的可用空間,可以為升級后的 Fedora 28 的根卷分配 20G 的邏輯卷。如果你使用的是默認安裝,則你的 LVM 中將沒有可用空間。對 LVM 的一般性管理超出了本文的范圍,但這里有一些情形下可能采取的方法:

1、/home 在自己的邏輯卷,而且 /home 中有大量空閑空間。

你可以從圖形界面中注銷并切換到文本控制臺,以 root 用戶身份登錄。然后你可以卸載 /home,并使用 lvreduce -r 調整大小并重新分配 /home 邏輯卷。你也可以從現場鏡像Live image啟動(以便不使用 /home)并使用 gparted GUI 實用程序進行分區(qū)調整。

2、大多數 LVM 空間被分配給根卷,該文件系統(tǒng)中有大量可用空間。

你可以從現場鏡像啟動并使用 gparted GUI 實用程序來減少根卷的大小。此時也可以考慮將 /home 移動到另外的文件系統(tǒng),但這超出了本文的范圍。

3、大多數文件系統(tǒng)已滿,但你有個已經不再需要邏輯卷。

你可以刪除不需要的邏輯卷,釋放卷組中的空間以進行此操作。

創(chuàng)建備份

首先,為升級后的系統(tǒng)分配新的邏輯卷。確保為系統(tǒng)的卷組(VG)使用正確的名稱。在這個例子中它是 vg_sdg。

  1. $ sudo lvcreate -L20G -n f28 vg_sdg
  2. Logical volume "f28" created.

接下來,創(chuàng)建當前根文件系統(tǒng)的快照。此示例創(chuàng)建名為 f26_s 的快照卷。

  1. $ sync
  2. $ sudo lvcreate -s -L1G -n f26_s vg_sdg/f26
  3. Using default stripesize 64.00 KiB.
  4. Logical volume "f26_s" created.

現在可以將快照復制到新邏輯卷。當你替換自己的卷名時,請確保目標正確。如果不小心,就會不可撤銷地刪除了數據。此外,請確保你從根卷的快照復制,而不是從你的現在的根卷。

  1. $ sudo dd if=/dev/vg_sdg/f26_s of=/dev/vg_sdg/f28 bs=256k
  2. 81920+0 records in
  3. 81920+0 records out
  4. 21474836480 bytes (21 GB, 20 GiB) copied, 149.179 s, 144 MB/s

給新文件系統(tǒng)一個唯一的 UUID。這不是絕對必要的,但 UUID 應該是唯一的,因此這避免了未來的混淆。以下是在 ext4 根文件系統(tǒng)上的方法:

  1. $ sudo e2fsck -f /dev/vg_sdg/f28
  2. $ sudo tune2fs -U random /dev/vg_sdg/f28

然后刪除不再需要的快照卷:

  1. $ sudo lvremove vg_sdg/f26_s
  2. Do you really want to remove active logical volume vg_sdg/f26_s? [y/n]: y
  3. Logical volume "f26_s" successfully removed

如果你單獨掛載了 /home,你可能希望在此處制作 /home 的快照。有時,升級的應用程序會進行與舊版 Fedora 版本不兼容的更改。如果需要,編輯根文件系統(tǒng)上的 /etc/fstab 文件以在 /home 上掛載快照。請記住,當快照已滿時,它將消失!另外,你可能還希望給 /home 做個正常備份。

配置以使用新的根

首先,安裝新的邏輯卷并備份現有的 GRUB 設置:

  1. $ sudo mkdir /mnt/f28
  2. $ sudo mount /dev/vg_sdg/f28 /mnt/f28
  3. $ sudo mkdir /mnt/f28/f26
  4. $ cd /boot/grub2
  5. $ sudo cp -p grub.cfg grub.cfg.old

編輯 grub.conf 并在第一個菜單項 menuentry 之前添加這些,除非你已經有了:

  1. menuentry 'Old boot menu' {
  2. configfile /grub2/grub.cfg.old
  3. }

編輯 grub.conf 并更改默認菜單項以激活并掛載新的根文件系統(tǒng)。改變這一行:

  1. linux16 /vmlinuz-4.16.11-100.fc26.x86_64 root=/dev/mapper/vg_sdg-f26 ro rd.lvm.lv=vg_sdg/f26 rd.lvm.lv=vg_sdg/swap rhgb quiet LANG=en_US.UTF-8

如你看到的這樣。請記住使用你系統(tǒng)上的正確的卷組和邏輯卷條目名稱!

  1. linux16 /vmlinuz-4.16.11-100.fc26.x86_64 root=/dev/mapper/vg_sdg-f28 ro rd.lvm.lv=vg_sdg/f28 rd.lvm.lv=vg_sdg/swap rhgb quiet LANG=en_US.UTF-8

編輯 /mnt/f28/etc/default/grub 并改變在啟動時激活的默認的根卷:

  1. GRUB_CMDLINE_LINUX="rd.lvm.lv=vg_sdg/f28 rd.lvm.lv=vg_sdg/swap rhgb quiet"

編輯 /mnt/f28/etc/fstab,將掛載的根文件系統(tǒng)從舊的邏輯卷:

  1. /dev/mapper/vg_sdg-f26 / ext4 defaults 1 1

改為新的:

  1. /dev/mapper/vg_sdg-f28 / ext4 defaults 1 1

然后,出于參考的用途,只讀掛載舊的根卷:

  1. /dev/mapper/vg_sdg-f26 /f26 ext4 ro,nodev,noexec 0 0

如果你的根文件系統(tǒng)是通過 UUID 掛載的,你需要改變這個方式。如果你的根文件系統(tǒng)是 ext4 你可以這樣做:

  1. $ sudo e2label /dev/vg_sdg/f28 F28

現在編輯 /mnt/f28/etc/fstab 使用該卷標。改變該根文件系統(tǒng)的掛載行,像這樣:

  1. LABEL=F28 / ext4 defaults 1 1

重啟與升級

重新啟動,你的系統(tǒng)將使用新的根文件系統(tǒng)。它仍然是 Fedora 26,但是是帶有新的邏輯卷名稱的副本,并可以進行 dnf 系統(tǒng)升級!如果出現任何問題,請使用舊引導菜單引導回到你的工作系統(tǒng),此過程可避免觸及舊系統(tǒng)。

  1. $ sudo systemctl reboot # or GUI equivalent
  2. ...
  3. $ df / /f26
  4. Filesystem 1K-blocks Used Available Use% Mounted on
  5. /dev/mapper/vg_sdg-f28 20511312 14903196 4543156 77% /
  6. /dev/mapper/vg_sdg-f26 20511312 14866412 4579940 77% /f26

你可能希望驗證使用舊的引導菜單確實可以讓你回到掛載在舊的根文件系統(tǒng)上的根。

現在按照此維基頁面中的說明進行操作。如果系統(tǒng)升級出現任何問題,你還會有一個可以重啟回去的工作系統(tǒng)。

進一步的考慮

創(chuàng)建新的邏輯卷并將根卷的快照復制到其中的步驟可以使用通用腳本自動完成。它只需要新的邏輯卷的名稱,因為現有根的大小和設備很容易確定。例如,可以輸入以下命令:

  1. $ sudo copyfs / f28

提供掛載點以進行復制可以更清楚地了解發(fā)生了什么,并且復制其他掛載點(例如 /home)可能很有用。

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2020-12-20 19:26:20

LVMFedoraLinux

2011-05-19 13:09:50

Fedora 15

2009-12-21 13:10:25

Fedora 11安裝

2021-07-25 10:34:17

FedoraPodmanLinux

2010-02-02 10:33:09

Linux升級系統(tǒng)

2023-10-09 16:17:11

BtrfsLinux

2023-05-20 17:42:17

GUICLI

2019-05-14 15:55:15

Fedora 29Fedora 30Linux

2019-11-05 13:20:00

Fedora 30Fedora 31Linux

2020-05-08 17:55:35

Fedora 31Fedora 32Linux

2021-12-14 15:03:58

LVM系統(tǒng)運維

2019-01-30 14:04:57

Fedora存儲庫

2018-12-25 13:45:54

Fedora IoT樹莓派Linux

2009-12-24 09:43:49

Fedora Core

2013-08-20 15:48:50

Fedora 18Fedora 19

2023-06-02 16:40:59

FedoraLinux

2020-11-27 20:02:17

LVM邏輯卷管理器

2009-12-16 09:56:30

Fedora Gnom

2009-12-28 16:39:56

Fedora 9

2011-03-21 09:17:06

NagiosFedora
點贊
收藏

51CTO技術棧公眾號