vmware環境の中で rhel10のホスト作った

普段クラウドの中で使ってると、インストールとか面倒なことせんでええし、awsのAMIとかバックアップあればリストアは簡単。

業務でサーバとして使うlinuxホストのディストリビューションは、ほぼredhat一択。他のディストリビューションって、2025年には見たことない。

稀に物理ホストでlinux立てることあるのと、そういうときはバックアップからリストアして巻き戻しできるようにしとかなアカン。

細かい手順がいるからvmware環境の中で練習してく。

rhel9でリストアできるように almalinux9で検証 したことあるから、rhel10でできるかをvmware環境内でやってみる。

結論

  1. OS準備

    windows11(24H2)のvmware17.6.4の中でrhel10をインストールして動かす。

    rhel10-restore-prep

  2. 接続準備

    macからrhel10へssh接続して利用、データ少し入れといてバックアップしてからwindowsへrdp接続できるようにしとく。

    普段使ってるのがmacやからrhelへはterminalから接続して利用。

    rhel10-restore-prep

  3. LVM使わん

    LVMのパーティションがあると、リストア後に OS起動がどうしてもできん かった。

    LVMやめて、ディスクの基本ボリュームにroot/swap/boot/boot-efi置いた構成でリカバリすることにした。

  4. リストアして動かす

    毎日ちょっとずつやってったから時間かかったけど、動くところ見れた。

    rhel10-restore-prep

以下、リストアやってったときのメモ。

vmwareの中でrhel10の準備

インストールしなおして準備してった。

OSインストールで変えたところ

LVM使わん構成でインストールした状態を作ってOSを準備。

OSインストールのとき、ルートパーティションと/bootだけやとどうなるかってやってみたら/boot/efiパーティション作れって怒られる。

rhel10-restore-prep

用意したるがな。左下の「使用できる領域」は、1.97MiBってどうしても端数が出てまうけど、これで進める。

rhel10-restore-prep

そやけど/boot/efiはなんでfatなんやろなぁ。ext4とかxfsではアカンのよなぁ。

ssh接続する設定

バックアップ取って材料作るまで、teraterm使ってwindowsから接続でもええんやけど、macから接続できるようにしとこか。

ホスト名設定とかIPアドレスの固定化もやっとく。

rhel10-restore

ホンマはコマンドラインでやったほうがええんやろけど、リストアが目的やしGUI使ってさっさと終わらす。

ホスト名設定はCUIでやってみた。インストールでホスト名の設定忘れたときこうする。

1
2
3
4
5
6
root@localhost:~# nmcli general hostname ⭐️ホスト名確認したら最初はなんも入ってへん?

root@localhost:~# nmcli general hostname gvis-rhel10 ⭐️適当に設定
root@localhost:~# nmcli general hostname ⭐️入ったの確認
gvis-rhel10
root@localhost:~# 

macからつなぐ。

何回かインストールしなおした。

mac側の~/.ssh/known_hostsに入ったrhel10の情報を都度潰してからつないだ。

rhel10-restore

バックアップ用のディスク

前はvmwareで作ったホストに普通のvmdkディスクをマウントしてバックアップしてたのを、rhel10でも同じことやってみる。

vmwareの中でディスクを追加。dfで利用率みると20GBもあれば十分かなと。

rhel10-restore

.vmdkをマウントするやり方が使えるから、USBメモリとかrdxでもいけるんとちゃうか(今は機材ないからできんけど)。

先にmkdir /backupしといてディスクを/backupにマウントして使う。フォーマットもGUIでできる。

21GBって見えるけど無視。オプションもわけわかめやけど初期値やから無視。ext4で初期化してマウントポイント指定したらええ。

rhel10-restore

/etc/fstabが追記されてるはずやから、マウントできるか試す。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
root@gvis-rhel10:~# cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Tue Sep  9 01:00:50 2025
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
UUID=7c4adf73-5211-44fe-a2b5-afd8d803c1eb /                       xfs     defaults        0 0
UUID=f9e7d6da-74a3-4377-8f28-68de04f8dc04 /boot                   xfs     defaults        0 0
UUID=0FA8-84DD          /boot/efi               vfat    umask=0077,shortname=winnt 0 2
UUID=c584d81f-1af2-47e2-a148-2f51ebb2e7fe none                    swap    defaults        0 0
/dev/disk/by-uuid/b1c6ff5d-084b-4cd0-bc28-cf2cf689af1e /backup auto nosuid,nodev,nofail,x-gvfs-show 0 0
root@gvis-rhel10:~# mount -a ⭐️マウントやったれ
mount: (hint) your fstab has been modified, but systemd still uses
       the old version; use 'systemctl daemon-reload' to reload. ⭐️あとでやったるわ
nari@gvis-rhel10:~$ df -h 
ファイルシス   サイズ  使用  残り 使用% マウント位置
/dev/nvme0n1p4    97G  5.7G   91G    6% / ⭐️インストールしただけやから消費量少ない
devtmpfs         4.0M     0  4.0M    0% /dev
tmpfs            1.9G   84K  1.9G    1% /dev/shm
efivarfs         256K   57K  195K   23% /sys/firmware/efi/efivars
tmpfs            776M   12M  764M    2% /run
tmpfs            1.0M     0  1.0M    0% /run/credentials/systemd-journald.service
/dev/nvme0n1p2   960M  277M  684M   29% /boot
/dev/nvme0n1p1   300M  8.5M  292M    3% /boot/efi
tmpfs            388M  164K  388M    1% /run/user/1000
tmpfs            388M   60K  388M    1% /run/user/0
/dev/sda          20G  2.7G   16G   15% /backup ⭐️バックアップ置き場マウントできとる
nari@gvis-rhel10:~$ 

dfの結果で見える/backupのパーティションは/dev/sdaって見えるから、fstabの中17行目にあるuuid混じりのデバイス記述箇所は/dev/sdaって書いてもええ。

uuidが使われるようになってから、特にfstabは書き換え面倒やけど、GUIやったらディスクの初期化も一発でやってくれる。

書き換え失敗したらOS起動できんようになることあるから注意せなアカン。

普段はsystemctl管理のサービス起動を自分で1つ作って、そのシーケンスの最初にマウントをやる癖がついてるから、あんまりfstabに頼ってへん。

fstab書き換えたら、今はdaemon-reload必要って知らんかったな。

バックアップ前の状態を確認

前にalmalinux9でやったのとほぼ同じことをrhel10でやってく。

  1. xfsdump/gitのインストール

  2. selinuxの無効化(SELINUX=disabledにする)とOS再起動

  3. gitクローン(今回もwinmergeでやってみた)

  4. ディスクの情報バックアップ(fdisk/parted/blkid/fstab)

    ⭐️最初はやるつもりやったのがLVM戻らんからvgcfgbackupは取らん

  5. LVMの状態バックアップ(pvdisplay/vgdisplay/lvdisplay)

    ⭐️最初はやるつもりやったのがLVM戻らんから今回は取らん

  6. システムの状態バックアップ(systemctlのリストと、dnfのリスト)

  7. efi/grub関連の設定保管

  8. rhel9のときに使った復活の呪文の準備とアレンジ

長いログは省略するけど、やってみたのはこんな感じ。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
root@gvis-rhel10:~# dnf update ⭐️更新しとく
サブスクリプション管理リポジトリーを更新しています。
Red Hat Enterprise Linux 10 for x86_64 - BaseOS (RPMs)               24 MB/s |  20 MB     00:00    
Red Hat Enterprise Linux 10 for x86_64 - AppStream (RPMs)           4.2 MB/s | 3.1 MB     00:00    
メタデータの期限切れの最終確認: 0:02:02 前の 2025年09月17日 07時45分59秒 に実施しました。
依存関係が解決しました。
行うべきことはありません。
完了しました!
root@gvis-rhel10:~# dnf install xfsdump
サブスクリプション管理リポジトリーを更新しています。
メタデータの期限切れの最終確認: 0:02:33 前の 2025年09月17日 07時45分59秒 に実施しました。
パッケージ xfsdump-3.2.0-1.el10.x86_64 は既にインストールされています。 ⭐️もう入っとるんやな
依存関係が解決しました。
行うべきことはありません。
完了しました!
root@gvis-rhel10:~# 
root@gvis-rhel10:~# dnf install git ⭐️入れる
サブスクリプション管理リポジトリーを更新しています。
 :(中略)
  perl-lib-0.65-512.2.el10_0.x86_64               

完了しました!
root@gvis-rhel10:~# vi /etc/sysconfig/selinux 
root@gvis-rhel10:~# cat /etc/sysconfig/selinux | grep SELINUX=dis
# NOTE: In earlier Fedora kernel builds, SELINUX=disabled would also
SELINUX=disabled ⭐️うっとおしいから無効化
root@gvis-rhel10:~# shutdown -r now
 :(中略)
root@gvis-rhel10:~$ getenforce ⭐️suせんでもselinuxの状態見せてくれる
Disabled
nari@gvis-rhel10:~$ git clone https://github.com/WinMerge/winmerge.git ⭐️winmergeやなくてもええんやけど取ってくる
Cloning into 'winmerge'...
remote: Enumerating objects: 159852, done.
remote: Counting objects: 100% (612/612), done.
remote: Compressing objects: 100% (414/414), done.
remote: Total 159852 (delta 373), reused 200 (delta 198), pack-reused 159240 (from 4)
Receiving objects: 100% (159852/159852), 499.13 MiB | 23.16 MiB/s, done.
Resolving deltas: 100% (81198/81198), done.
nari@gvis-rhel10:~$ 
nari@gvis-rhel10:~$ sudo su -
[sudo] nari のパスワード:
最終ログイン: 2025/09/18 () 04:33:36 JST 端末:pts/1
root@gvis-rhel10:~# 
root@gvis-rhel10:~# cp -pR /home/nari/winmerge /backup/
root@gvis-rhel10:~# cd /backup
root@gvis-rhel10:/backup# fdisk -l > ./fdisk.txt ⭐️ディスク情報のバックアップ
root@gvis-rhel10:/backup# parted -l > ./parted.txt ⭐️vmwareでcd/dvdを接続したままでドライブが空やとエラー出るんかな
警告: /dev/sr0 を読み書き可能な状態にオープンできません(読み込み専用ファイルシステムです)。/dev/sr0
は読み込みのみ可能な状態でオープンされました。
エラー: /dev/sr0: ディスクラベルが認識できません。
root@gvis-rhel10:/backup# blkid | sort > ./blkid.txt ⭐️ブロックディスク情報のバックアップ
root@gvis-rhel10:/backup# cp -p /etc/fstab ./fstab.txt ⭐️マウントするディスク情報のバックアップ
root@gvis-rhel10:/backup# systemctl list-unit-files -t service | grep enabled > /backup/systemctlList.txt ⭐️システムのサービス状態のバックアップ
root@gvis-rhel10:/backup# dnf list --installed > dnf.txt ⭐️インストールしてあるモジュール状態のバックアップ
root@gvis-rhel10:/backup# efibootmgr -v > efibootmgr.txt ⭐️efi関連の設定
root@gvis-rhel10:/backup# cat /boot/efi/EFI/redhat/grub.cfg > grub.txt ⭐️grub関連の設定
root@gvis-rhel10:/backup# ls -lh
合計 2.6G
-rw-r--r--.  1 root root  100  9月 18 05:38 0_mountBK.sh
-rw-r--r--.  1 root root   87  9月 11 04:40 1_lvmSettingDel.sh
-rw-r--r--.  1 root root  380  9月 19 04:51 2_makePartition.sh
-rw-r--r--   1 root root  172  9月 10 05:43 3_makeLVM.sh
-rw-r--r--.  1 root root  292  9月 19 04:50 4_makeFilesys.sh
-rw-r--r--.  1 root root  320  9月 18 06:04 5_restore.sh
-rw-r--r--.  1 root root  202  9月 12 03:33 6_mount.sh
-rw-r--r--   1 root root  181  9月 18 06:10 7_efiMemo.txt
-rw-r--r--   1 root root  651  9月 18 04:44 blkid.txt
-rw-r--r--   1 root root 290M  9月 18 05:26 boot.gz
-rw-r--r--   1 root root 3.6M  9月 18 05:25 boot_efi.tar.gz
-rw-r--r--   1 root root 148K  9月 18 04:45 dnf.txt
-rw-r--r--   1 root root 1.8K  9月 18 04:46 efibootmgr.txt
-rw-r--r--   1 root root  864  9月 18 04:43 fdisk.txt
-rw-r--r--   1 root root  806  9月 17 07:21 fstab.txt
-rw-r--r--   1 root root  144  9月 18 04:46 grub.txt
drwx------   2 root root  16K  9月  6 05:05 lost+found
-rw-r--r--   1 root root  849  9月 18 04:44 parted.txt
-rw-r--r--   1 root root 2.3G  9月 18 05:22 root.gz
-rw-r--r--   1 root root 4.0K  9月 18 04:45 systemctlList.txt
drwxr-xr-x  16 nari nari 4.0K  9月 18 04:40 winmerge
root@gvis-rhel10:/backup#

ディスクの状態

リストした結果を確認。

fdisk

fdiskで状態確認。インストールでパーティションは4つ用意。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
root@gvis-rhel10:/backup# fdisk -l /dev/nvme0n1
Disk /dev/nvme0n1: 100 GiB, 107374182400 bytes, 209715200 sectors
Disk model: VMware Virtual NVMe Disk
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: DD94FDA4-6880-4B0D-AA9C-5EBAB11BC186

Device           Start       End   Sectors  Size Type
/dev/nvme0n1p1    2048    616447    614400  300M EFI System ⭐️デフォルトより縮めた
/dev/nvme0n1p2  616448   2713599   2097152    1G Linux extended boot ⭐️これぐらいあったらええやろ
/dev/nvme0n1p3 2713600   6907903   4194304    2G Linux swap ⭐️メモリの半分にしたった
/dev/nvme0n1p4 6907904 209713151 202805248 96.7G Linux root (x86-64) ⭐️LVMやめた

ファイルシステムとしてはこうなってて、/boot/efiがvfatで存在するし、バックアップのパーティションも見える。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
root@gvis-rhel10:/backup# df -hT | sort
/dev/nvme0n1p1 vfat       300M  8.5M  292M    3% /boot/efi ⭐️300Mでも多いぐらいやな
/dev/nvme0n1p2 xfs        960M  366M  595M   39% /boot
/dev/nvme0n1p4 xfs         97G  6.6G   91G    7% /
/dev/sda       ext4        20G  597M   18G    4% /backup
devtmpfs       devtmpfs   4.0M     0  4.0M    0% /dev ⭐️あとでchrootするときにいるで
efivarfs       efivarfs   256K   57K  195K   23% /sys/firmware/efi/efivars ⭐️あとでchrootするときにいるで
tmpfs          tmpfs      1.0M     0  1.0M    0% /run/credentials/systemd-journald.service
tmpfs          tmpfs      1.8G     0  1.8G    0% /dev/shm
tmpfs          tmpfs      362M   56K  362M    1% /run/user/1000
tmpfs          tmpfs      362M   72K  362M    1% /run/user/42
tmpfs          tmpfs      724M  9.5M  715M    2% /run ⭐️あとでchrootするときにいるで
ファイルシス   タイプ   サイズ  使用  残り 使用% マウント位置
root@gvis-rhel10:/backup# 

almalinux9のときにはいらんかったけど、rhel10になったらリストア後のchrootした後のコマンドラインでエラーが出ることがあった。

後で出てくるけど、⭐️印の箇所に留意してchroot直前にマウントするもんを以前とは変えた。

parted

almalinux9/rhel9のときもそうやし、さっきもサイズのズレがあったんやけど、なんでbackupのパーティション20GBやなくて21.5GBなんやろなぁ。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
root@gvis-rhel10:/backup# cat parted.txt 
モデル: VMware, VMware Virtual S (scsi)
ディスク /dev/sda: 21.5GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: loop
ディスクフラグ: 

番号  開始   終了    サイズ  ファイルシステム  フラグ
 1    0.00B  21.5GB  21.5GB  ext4


モデル: VMware Virtual NVMe Disk (nvme)
ディスク /dev/nvme0n1: 107GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
ディスクフラグ: 

番号  開始    終了    サイズ  ファイルシステム  名前                  フラグ
 1    1049kB  316MB   315MB   fat16             EFI System Partition  boot, esp
 2    316MB   1389MB  1074MB  xfs                                     bls_boot
 3    1389MB  3537MB  2147MB  linux-swap(v1)                          swap
 4    3537MB  107GB   104GB   xfs


root@gvis-rhel10:/backup# 

blkid

毎度UUID読みづらい。UUIDとPARTUUIDって2つあるから、これまた読みづらい。

1
2
3
4
5
6
7
root@gvis-rhel10:/backup# cat blkid.txt 
/dev/nvme0n1p1: SEC_TYPE="msdos" UUID="0FA8-84DD" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="b4063c1a-ed1c-4b24-b13d-e61b13dd70be"
/dev/nvme0n1p2: UUID="f9e7d6da-74a3-4377-8f28-68de04f8dc04" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="3ec78fef-a90b-4469-999e-c036d0fc6f81"
/dev/nvme0n1p3: UUID="c584d81f-1af2-47e2-a148-2f51ebb2e7fe" TYPE="swap" PARTUUID="380a7cfb-45d7-4d23-a2ce-055db763b26c"
/dev/nvme0n1p4: UUID="7c4adf73-5211-44fe-a2b5-afd8d803c1eb" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="9d87b5b7-0d12-434c-b3fe-6cbbd4138eb4"
/dev/sda: LABEL="backup" UUID="b1c6ff5d-084b-4cd0-bc28-cf2cf689af1e" BLOCK_SIZE="4096" TYPE="ext4"
root@gvis-rhel10:/backup# 

efiにある起動情報

efibootmgrってコマンドで起動順位設定みたいなのが見える。dp:って始まる行がパーティションごとについとる。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
root@gvis-rhel10:/backup# cat efibootmgr.txt 
BootCurrent: 0004
Timeout: 5 seconds
BootOrder: 0004,0000,0001,0003,0002,0005
Boot0000* EFI VMware Virtual NVME Namespace (NSID 1)	PciRoot(0x0)/Pci(0x16,0x0)/Pci(0x0,0x0)/NVMe(0x1,00-00-00-00-00-00-00-00)
      dp: 02 01 0c 00 d0 41 03 0a 00 00 00 00 / 01 01 06 00 00 16 / 01 01 06 00 00 00 / 03 17 10 00 01 00 00 00 00 00 00 00 00 00 00 00 / 7f ff 04 00
Boot0001* EFI VMware Virtual SATA CDROM Drive (1.0)	PciRoot(0x0)/Pci(0x11,0x0)/Pci(0x0,0x0)/Sata(1,0,0)
      dp: 02 01 0c 00 d0 41 03 0a 00 00 00 00 / 01 01 06 00 00 11 / 01 01 06 00 00 00 / 03 12 0a 00 01 00 00 00 00 00 / 7f ff 04 00
Boot0002* EFI VMware Virtual SCSI Hard Drive (0.0)	PciRoot(0x0)/Pci(0x11,0x0)/Pci(0x1,0x0)/SCSI(0,0)
      dp: 02 01 0c 00 d0 41 03 0a 00 00 00 00 / 01 01 06 00 00 11 / 01 01 06 00 00 01 / 03 02 08 00 00 00 00 00 / 7f ff 04 00
Boot0003* EFI Internal Shell (Unsupported option)	MemoryMapped(11,0xeb4d018,0xf07e017)/FvFile(c57ad6b7-0515-40a8-9d21-551652854e37)
      dp: 01 03 18 00 0b 00 00 00 18 d0 b4 0e 00 00 00 00 17 e0 07 0f 00 00 00 00 / 04 06 14 00 b7 d6 7a c5 15 05 a8 40 9d 21 55 16 52 85 4e 37 / 7f ff 04 00
Boot0004* Red Hat Enterprise Linux	HD(1,GPT,b4063c1a-ed1c-4b24-b13d-e61b13dd70be,0x800,0x96000)/\EFI\redhat\shimx64.efi
      dp: 04 01 2a 00 01 00 00 00 00 08 00 00 00 00 00 00 00 60 09 00 00 00 00 00 1a 3c 06 b4 1c ed 24 4b b1 3d e6 1b 13 dd 70 be 02 02 / 04 04 34 00 5c 00 45 00 46 00 49 00 5c 00 72 00 65 00 64 00 68 00 61 00 74 00 5c 00 73 00 68 00 69 00 6d 00 78 00 36 00 34 00 2e 00 65 00 66 00 69 00 00 00 / 7f ff 04 00
Boot0005* EFI Network	PciRoot(0x0)/Pci(0x15,0x0)/Pci(0x0,0x0)/MAC(0050562b6f25,1)
      dp: 02 01 0c 00 d0 41 03 0a 00 00 00 00 / 01 01 06 00 00 15 / 01 01 06 00 00 00 / 03 0b 25 00 00 50 56 2b 6f 25 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 / 7f ff 04 00
root@gvis-rhel10:/backup# 

dpってなんやろ。リストアするとき丸々同じように戻るもんかな。

ヒントを書いておられる方がいた。作者さんありがとう。

「bootmgfwに至るまでのデバイスパス」ってあったけど、ダンプの結果みたいな羅列になっとるな。

ディスク構成変えずに行くんやから、デバイスパスも同じでええような気がする。いったんそのまま行っとこ。

次grubの内容。

1行目のUUIDはパーティションとしての/bootを指定してるのは前と一緒。

1
2
3
4
5
6
7
root@gvis-rhel10:/backup# cat grub.txt 
search --no-floppy --fs-uuid --set=dev f9e7d6da-74a3-4377-8f28-68de04f8dc04
set prefix=($dev)/grub2

export $prefix
configfile $prefix/grub.cfg
root@gvis-rhel10:/backup#

念のためfstab

UUID入っててヤヤこしいなぁ。

/boot/efiがUUID短めなのは前と同じ。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
root@gvis-rhel10:/backup# cat fstab.txt 

#
# /etc/fstab
# Created by anaconda on Tue Sep 16 22:13:16 2025
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
UUID=7c4adf73-5211-44fe-a2b5-afd8d803c1eb /                       xfs     defaults        0 0
UUID=f9e7d6da-74a3-4377-8f28-68de04f8dc04 /boot                   xfs     defaults        0 0
UUID=0FA8-84DD          /boot/efi               vfat    umask=0077,shortname=winnt 0 2
UUID=c584d81f-1af2-47e2-a148-2f51ebb2e7fe none                    swap    defaults        0 0
/dev/disk/by-uuid/b1c6ff5d-084b-4cd0-bc28-cf2cf689af1e /backup auto nosuid,nodev,nofail,x-gvfs-show 0 0
root@gvis-rhel10:/backup#

vmwareでゲストOS起動のとき、ブートメニューに入るまでの待ち秒数設定を.vmxファイルに書き足す。

1
2
firmware = "efi"
BIOS.BootDelay = "5000" ⭐️5秒な

フルバックアップ

vfatのパーティションはxfsdumpやなくてtar使うのは前と一緒。入力予定内容はこんな感じ。

barckup commandline
1
2
3
4
5
6
# cd /backup
# xfsdump -l0 - /dev/nvme0n1p4 | gzip -9 > /backup/root.gz
# cd /boot/efi
# tar czf /backup/boot_efi.tar.gz ./EFI/
# xfsdump -l0 - /dev/nvme0n1p2 | gzip -9 > /backup/boot.gz
# ls -lh /backup/* | egrep '.gz'

xfsdumpしたときの結果はalmalinux9に比べて少し速くなった気がする。ディスクの利用サイズは同じぐらいでもマシンの性能上げたからか。

まずはルートパーティションのバックアップ。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
root@gvis-rhel10:/backup# xfsdump -l0 - /dev/nvme0n1p4 | gzip -9 > /backup/root.gz
xfsdump: using file dump (drive_simple) strategy
xfsdump: version 3.2.0 (dump format 3.0)
xfsdump: level 0 dump of gvis-rhel10:/
xfsdump: dump date: Thu Sep 18 05:17:57 2025
xfsdump: session id: a885ef97-976d-408d-b6fa-43ed39eff6ec
xfsdump: session label: ""
xfsdump: ino map phase 1: constructing initial dump list
xfsdump: ino map phase 2: skipping (no pruning necessary)
xfsdump: ino map phase 3: skipping (only one dump stream)
xfsdump: ino map construction complete
xfsdump: estimated dump size: 4943499136 bytes
xfsdump: creating dump session media file 0 (media 0, file 0)
xfsdump: dumping ino map
xfsdump: dumping directories
xfsdump: dumping non-directory files
xfsdump: ending media file
xfsdump: media file size 4802035720 bytes
xfsdump: dump size (non-dir files) : 4714531688 bytes
xfsdump: dump complete: 280 seconds elapsed ⭐️5分かからん
xfsdump: Dump Status: SUCCESS
root@gvis-rhel10:/backup#

残る2つのパーティションをバックアップ。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
root@gvis-rhel10:/backup# cd /boot/efi
root@gvis-rhel10:/boot/efi# ls
EFI
root@gvis-rhel10:/boot/efi# tar czf /backup/boot_efi.tar.gz ./EFI/ ⭐️1秒以内で戻ってくる
root@gvis-rhel10:/boot/efi# xfsdump -l0 - /dev/nvme0n1p2 | gzip -9 > /backup/boot.gz
xfsdump: using file dump (drive_simple) strategy
xfsdump: version 3.2.0 (dump format 3.0)
xfsdump: level 0 dump of gvis-rhel10:/boot
xfsdump: dump date: Thu Sep 18 05:26:00 2025
xfsdump: session id: ef4fd5ed-e237-492d-b2bf-19874af8c567
xfsdump: session label: ""
xfsdump: ino map phase 1: constructing initial dump list
xfsdump: ino map phase 2: skipping (no pruning necessary)
xfsdump: ino map phase 3: skipping (only one dump stream)
xfsdump: ino map construction complete
xfsdump: estimated dump size: 330347264 bytes
xfsdump: creating dump session media file 0 (media 0, file 0)
xfsdump: dumping ino map
xfsdump: dumping directories
xfsdump: dumping non-directory files
xfsdump: ending media file
xfsdump: media file size 330398312 bytes
xfsdump: dump size (non-dir files) : 330355208 bytes
xfsdump: dump complete: 8 seconds elapsed ⭐️そらそうよ
xfsdump: Dump Status: SUCCESS
root@gvis-rhel10:/boot/efi# 

バックアップ結果はこんな感じ。dfで見た時の消費容量の半分ぐらいに縮んでるかな。

1
2
3
4
5
root@gvis-rhel10:~# ls -lh /backup/* | egrep '.gz'
-rw-r--r--   1 root root 290M  9月 18 05:26 /backup/boot.gz
-rw-r--r--   1 root root 3.6M  9月 18 05:25 /backup/boot_efi.tar.gz
-rw-r--r--   1 root root 2.3G  9月 18 05:22 /backup/root.gz
root@gvis-rhel10:~# 

リストアの準備

今回はwindowsホストのvmwareにrhel10入れて、macからwindowsへリモートデスクトップしてる。

rhel10のレスキューモードではopen-vm-tools動いてへんから、キー入力がカクンカクン動く上にキーボードは強制的に英字配列。

文字入力めっちゃやりにくいから、リストアの前に復活の呪文を用意してuuidとか書き換えとく。

1
2
3
root@gvis-rhel10:/backup# ls *.sh 
0_mountBK.sh  1_lvmSettingDel.sh  2_makePartition.sh  3_makeLVM.sh  4_makeFilesys.sh  5_restore.sh
root@gvis-rhel10:/backup# 

状態見ながら使ってく。

あとはvmwareでマシンのイメージをファイル退避しといて、うまく行かなかなくてやりなおすときに使う。

dvdブート

バックアップ終わったら、ルートパーティション潰して同じサイズのディスクを新規で作る。

rhel10-restore

rhel10のインストールで使ったisoファイルをvmwareのcd/dvdから使えるようにしといて、vmwareでrhel10起動し、F2キーを押す。

rhel10-restore

ブートマネージャでcdromからの起動選ぶ。

rhel10-restore

起動したらTroubleshooting選ぶ。

rhel10-restore

「Rescue a Red Hat Enterprise Linux system」を選ぶ。

rhel10-restore

「3) Skip to shell」を選んで「Please press ENTER to get a shell」でenter押す。

rhel10-restore

ここまででbash使えるようになる。

バックアップを参照できるようにしとく

新規ディスクと、さっき作ったbackupのパーティションが見えるから、mkdirしてマウントする。

rhel10-restore

これでバックアップしたデータを参照できるし、復活の呪文が使える。

1つ目の内容にメモったけど、ここで必要やったらlocalectl set-keymap jpとか先にやっといてもええ。

macからwindowsへrdpしてvmwareの子ホストいじるとき、localectlやると記号入力がうまいこといかんから英語キー配列のままでやってった。

0_mountBK.sh
1
2
3
4
5
localectl set-keymap jp ⭐️これはやらんかった
mkdir /backup
fdisk -l | grep Disk
mount /dev/xxx /backup
ls -l /backup

LVMを初期化 - やらんけど

LVM使ってる時は設定を潰してたんやけど、リストアがどうしてもうまいこと行かんからLVM構成やめ。

書いてた内容はこんな感じ。

1_lvmSettingDel.sh
1
2
3
4
lvremove /dev/rhel/root
lvremove /dev/rhel/swap
vgremove rhel
pvremove /dev/nvme0n1p3 ⭐️p1には`/boot/efi`の基本パーティション、p2には`/boot`の基本パーティション、p3には`rhel`のvgが入ってた

新規パーティションのときのLVMはすっからかん。

rhel10-restore

パーティションを初期化

今回もparted使ってみる。

これでできるはず。

2_makePartition.sh
1
2
3
4
5
parted -s -a optimal /dev/nvme0n1 -- mklabel gpt
parted -s -a optimal /dev/nvme0n1 -- mkpart EFI-partition fat16 1049kB   315MB set 1 esp on
parted -s -a optimal /dev/nvme0n1 -- mkpart Boot-partition xfs   316MB  1388MB
parted -s -a optimal /dev/nvme0n1 -- mkpart swap     linux-swap 1389MB  3536MB
parted -s -a optimal /dev/nvme0n1 -- mkpart root-partition xfs  3537MB   100%

スクリプトにして動かしてみたらできてるっぽい。

rhel10-restore

partedを対話型で起動してpって入力すると、ブートのフラグできとるのが見える。

rhel10-restore

LVMを復元 - やらんけど

使わん。

準備してたけど、リストアした後にvgchangeが有効にならずrhelの中にあるルートパーティションが見えへん。

3_makeLVM.sh
1
2
3
pvcreate --uuid 4pweeV-srrg-0VDj-nFW9-AW0a-KhPQ-0f0Fl0 --restorefile /backup/vgcfgbackup.txt /dev/nvme0n1p3
vgcfgrestore -f /backup/vgcfgbackup.txt rhel
vgchange -ay rhel

動かしたときはこんな感じ。

rhel10-restore

ファイルシステム作る

/boot/efiをvfat、/bootとルートパーティションはxfsで作る。

4_makeFilesys.sh
1
2
3
4
5
6
7
8
9
mkfs.vfat -v -c -F16 /dev/nvme0n1p1 ⭐️最初`-F32 -s2`ってオプションつけてたけどセクタ関連のエラー出たから、`F16`にして外した

mkfs.xfs -f /dev/nvme0n1p2
xfs_admin -U f9e7d6da-74a3-4377-8f28-68de04f8dc04  /dev/nvme0n1p2

mkswap --uuid=c584d81f-1af2-47e2-a148-2f51ebb2e7fe /dev/nvme0n1p3

mkfs.xfs -f /dev/nvme0n1p4
xfs_admin -U 7c4adf73-5211-44fe-a2b5-afd8d803c1eb  /dev/nvme0n1p4

やってみたらこうなる。文字コードの変換テーブルのメッセージ出てるけど、全角文字使ってデータ保存するわけやないし、いったんこのままいっとく。

rhel10-restore

ここまでで、リストアの準備が完了。

リストアする

バックアップしといたものをリストアしてく。

5_restore.sh
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
mkdir /restore
mount -t xfs /dev/nvme0n1p4 /restore
cd /restore
zcat /backup/root.gz | xfsrestore - ./

mount -t xfs /dev/nvme0n1p2 /restore/boot
cd /restore/boot
zcat /backup/boot.gz | xfsrestore - ./

mount -t vfat /dev/nvme0n1p1 /restore/boot/efi
cd /restore/boot/efi
tar xzf /backup/boot_efi.tar.gz

sync;sync;sync

動かしたらこうなる。うまいこといっとるな。

rhel10-restore

tarで復元やし、/boot/efiについてのエコーバックなんもないけど、復旧はできとる。

rhel10-restore

そういえばxfsrestoreで出てた orphanageのエラー 解決してるんやな。

xfsdumpのバージョン上がってるみたいやから大丈夫っぽい。

1
2
3
root@gvis-rhel10:/backup# rpm -qa | grep xfsdump  
xfsdump-3.2.0-1.el10.x86_64
root@gvis-rhel10:/backup# 

2024年の1月頃に初めて見たけど、6月に解決しとるんやな。もっとはよ修正せえよなぁ。

EFIの復旧

/boot/efiに設定するときchrootする必要があるんやけど、初期インストールしてdf結果見た時にefivarsとか見えたから前よりもマウント対象増えた感じ。

6_mount.sh
1
2
3
4
5
mount --bind /proc /restore/proc
mount --bind /dev  /restore/dev
mount --bind /sys  /restore/sys
mount --bind /sys/firmware/efi/efivars /restore/sys/firmware/efi/efivars ⭐️これないとefibootmgrのコマンドラインでエラー出る
mount --bind /run  /restore/run

マウントしてchrootし、/restoreって作ったパーティションを基点にして使いながら、efi関連設定をやってく。

rhel10-restore

procのマウントポイント見えへんけど、必要は必要。

ブートマネージャの設定してく。まずはBootって始まる5と4を潰す。

rhel10-restore

入力したのはこの内容。rhel10のディスク見にいく設定の箇所はバックスラッシュとかクオートの文字入力必要やからけっこうツライ。

1
2
3
4
5
6
7
8
# efibootmgr -v       # 設定確認

# efibootmgr -b 5 -B  # dvdブートしたときに増えた起動設定の削除
# efibootmgr -b 4 -B  # rhel起動設定の削除

# efibootmgr -c -d /dev/nvme0n1 -p 1 -l '\EFI\redhat\shimx64.efi' -L 'redhat'  ⭐️文字入力ガンバレー!!
# efibootmgr -o 0004
# efibootmgr -t 5   #タイムアウトの設定

登録情報をデフォルトにしたいからその指定をつけて、起動まで5秒のインターバルもつけとく。

rhel10-restore

grub設定の復旧

grub.cnfにはblkidにあるuuidがもう書いてある状態やから、ここはこのまま。

rhel10-restore

fstab修正

/etc/fstabにvfatのuuid書いてある箇所を実態に寄せてく。

rhel10-restore

fstabにある0FA8-84DDってあるのを39D0-BCC3に修正する。

GUI起動やなくてisoイメージからの起動やし、キー入力がもっさりもっさり動いてくれてviめっちゃ使いづらい!!

rhel10-restore

最後にinitramfsの一番新しいバージョンのファイルをバックアップしといて作成しなおす。あとでやってみてわかるんやけど、これ要らん。

1
2
3
4
5
# cd /boot/
# ls -l initramfs-*
# mv initramfs-6.12.0-55.31.1.el10_0.x86_64.img initramfs-6.12.0-55.31.1.el10_0.x86_64.img.old
# dracut -f initramfs-6.12.0-55.31.1.el10_0.x86_64.img
# sync ; sync 

rhel10-restore

blkidの確認

blkidのUUIDが/etc/fstabの内容とあってるか確認。この見直し大事。

rhel10-restore

辻褄があってへんかったら起動に失敗するで。

syncしてOS停止と起動

chrootからexitしてshutdownする。

rhel10-restore

いったんshutdownして、dvdを起動時にマウントしないようにvmの設定しとく。

rhel10-restore

さぁ、起動してみましょ!

rhel10-restore

アカンなぁ。くるんくるん回る。

なんやろなぁ。10分ぐらいこの状態続きながら考えてみて、grubのメニューから別のカーネルで起動してみた。

rhel10-restore

アララ!? 起動できる!? dracutで作ったカーネルがアカン? dracutせんでもええの!?

rhel10-restore

mac側から接続してみて、/bootにあるinitramfsdracutで作り直す前のものに変えてみた。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
root@gvis-rhel10:~# uname -a
Linux gvis-rhel10 6.12.0-55.9.1.el10_0.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Mar 25 09:14:09 EDT 2025 x86_64 GNU/Linux
root@gvis-rhel10:~# cd /boot/
root@gvis-rhel10:/boot#
root@gvis-rhel10:/boot# ls initramfs-*
initramfs-0-rescue-0fd3975ed195422d844892653d961104.img
initramfs-6.12.0-55.33.1.el10_0.x86_64.img ⭐️さっき作ったこれがアカンのか?
initramfs-6.12.0-55.33.1.el10_0.x86_64.img.old ⭐️こっちに戻してみる
initramfs-6.12.0-55.33.1.el10_0.x86_64kdump.img
initramfs-6.12.0-55.9.1.el10_0.x86_64.img
initramfs-6.12.0-55.9.1.el10_0.x86_64kdump.img
root@gvis-rhel10:/boot# 
root@gvis-rhel10:/boot# mv initramfs-6.12.0-55.33.1.el10_0.x86_64.img initramfs-6.12.0-55.33.1.el10_0.x86_64.img.NG
root@gvis-rhel10:/boot# mv initramfs-6.12.0-55.33.1.el10_0.x86_64.img.old initramfs-6.12.0-55.33.1.el10_0.x86_64.img
root@gvis-rhel10:/boot# ls initramfs-*
initramfs-0-rescue-0fd3975ed195422d844892653d961104.img
initramfs-6.12.0-55.33.1.el10_0.x86_64.img ⭐️これでがんばってくれー
initramfs-6.12.0-55.33.1.el10_0.x86_64.img.NG
initramfs-6.12.0-55.33.1.el10_0.x86_64kdump.img
initramfs-6.12.0-55.9.1.el10_0.x86_64.img
initramfs-6.12.0-55.9.1.el10_0.x86_64kdump.img
root@gvis-rhel10:/boot#
root@gvis-rhel10:/boot# shutdown -r now

やってみたら起動できたし、用意したパーティションもちゃんと見えとるし、dracutいらんかったっちゅうことか。

rhel10-restore

結局、/boot/efi以外を戻せたらRAMファイルシステムの作り直しいらんっていうことでええんか。

dracutの勉強しとかなアカンなぁ。すぐはやらんけど。

リストア後の確認

df見てみると、復活の呪文で戻せてそう。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
root@gvis-rhel10:~# df -hT
ファイルシス   タイプ   サイズ  使用  残り 使用% マウント位置
/dev/nvme0n1p4 xfs         97G  6.7G   91G    7% /
devtmpfs       devtmpfs   4.0M     0  4.0M    0% /dev
tmpfs          tmpfs      1.8G   84K  1.8G    1% /dev/shm
efivarfs       efivarfs   256K   58K  194K   23% /sys/firmware/efi/efivars
tmpfs          tmpfs      724M  9.7M  715M    2% /run
tmpfs          tmpfs      1.0M     0  1.0M    0% /run/credentials/systemd-journald.service
/dev/nvme0n1p2 xfs        959M  431M  529M   45% /boot
/dev/nvme0n1p1 vfat       299M  8.5M  291M    3% /boot/efi
/dev/sda       ext4        20G  3.2G   16G   18% /backup
tmpfs          tmpfs      362M  140K  362M    1% /run/user/1000
tmpfs          tmpfs      362M   56K  362M    1% /run/user/0
root@gvis-rhel10:~# 

今回は大丈夫やったけど、podman入ってたらxfsrestore失敗してたような気がする。

こういうところがredhatイマイチってなるから個人利用では使わん。

比較対象の情報を抜き出す

winmergeで機械的に比較してみよっかな。

リストア前の状態をdiff利用して比べるために、リストア後の状態を書き出してみる。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
root@gvis-rhel10:~# pwd 
/root
root@gvis-rhel10:~# mkdir restore
root@gvis-rhel10:~# cp -pR /home/nari/winmerge/ /root/restore/
root@gvis-rhel10:~# cd restore/
root@gvis-rhel10:~/restore# fdisk -l > ./fdisk.txt
root@gvis-rhel10:~/restore# parted -l > ./parted.txt
root@gvis-rhel10:~/restore# blkid | sort > ./blkid.txt
root@gvis-rhel10:~/restore# cp -p /etc/fstab ./fstab.txt
root@gvis-rhel10:~/restore# efibootmgr -v > ./efibootmgr.txt
root@gvis-rhel10:~/restore# cat /boot/efi/EFI/redhat/grub.cfg > ./grub.txt
root@gvis-rhel10:~/restore# systemctl list-unit-files -t service | grep enabled > ./systemctlList.txt
root@gvis-rhel10:~/restore# dnf list --installed > ./dnf.txt
root@gvis-rhel10:~/restore#

tarで固めてwindows環境に持ってく

tar.gzで固めとく。

1
2
3
4
5
6
7
root@gvis-rhel10:~# tar czf restore.tar.gz restore/
root@gvis-rhel10:~# tar czf ./backup.tar.gz /backup
tar: メンバ名から先頭の `/' を取り除きます
root@gvis-rhel10:~# 
root@gvis-rhel10:~# ls 
anaconda-ks.cfg  backup.tar.gz  restore  restore.tar.gz
root@gvis-rhel10:~# 

windows環境に持ってってみる。/tmpに置いといたらscp転送できるから、backup.tar.gzとrestore.tar.gzをデスクトップにコピーしとく。

rhel10-restore

比べてみる

実務ではwinmergeで比べてること多いから使ってく。

git cloneしたwinmergeのフォルダ

小さなファイルがいっぱい入っとるのが完全一致。.gitまで一致しとる。緑色のチェックマークええねぇ。

xfsdumpしたもんをxfsrestoreしてるんやから、そらそうやわなぁ。

rhel10-restore

fdiskの内容

バックアップ領域のディスク/dev/hdaの位置が、右側のリストア後のときに下のほうに行ってしもてるのはOK。ディスクの発見順に表示されてるみたいやし順番なんかどうでもええ。

nvme01nのディスクはvmwareで削除して作り直したからDisk identifierっていうところが違うのもOK。

パーティションのサイズとタイプは違っててもOSから読んで使えてるからOK。

rhel10-restore

partedの内容

これもサイズとか名前が微妙に違う程度。右端のフラグにあるboot,espがあってたらええ。

rhel10-restore

blkidの内容

winmergeの上半分の画面が真っ赤っかやけど、差異があるのはwinmerge画面下段の右側のパーティションラベルとそのUUID。

下段の左側のxfsとswapのUUIDが、キレイにおうてる。

rhel10-restore

fstabの内容

FATのパーティションはblkidの結果にあるUUIDで書き換えたから違っててええ。

rhel10-restore

efibootmgrの内容

5番目まであったのが8番目までに増えとる。almalinux9のときもそやったな。

リストアした後chrootしていらんもん削ったんやけどなぁ。削ってもええけどOS起動できたから放置。

rhel10-restore

grubの内容

いじってへんのやから完全一致するわなぁ。

rhel10-restore

dnfとsystemctlで管理するサービスの内容

これも完全一致。利用者にとってはここが一番大事かな。モジュールのリストは千行超えやけど完全一致するわな。

rhel10-restore

有効にしてるサービスもおうてる。

rhel10-restore

実務で比べるとしたら、他にも業務アプリケーションのデータフォルダとかを比べたらええ。

所有権も必要やったら比べる。ls -lRaの結果でええんやろけど、フォルダのタイムスタンプはズレるはず。

失敗の巻

パーティションにLVMがあるとリストアうまく行かんかった。

いつかうまく行く方法を見つけられるかもしれんけど、OS起動できんかった。

うまく行く方法見つけられへんかったから、めっちゃくやしい。いつかチャレンジしなおしたい。

バックアップしたときに/dev/nvme0n1p3ってある中のパーティションの中のVGが、リストアしたときに認識できん。

rhel10-restore

リストアのときpvcreateした後、LVMの構成をリストアしてvgchangeはできる。

makeLVM.sh
1
2
3
pvcreate --uuid 4pweeV-srrg-0VDj-nFW9-AW0a-KhPQ-0f0Fl0 --restorefile /backup/vgcfgbackup.txt /dev/nvme0n1p3
vgcfgrestore -f /backup/vgcfgbackup.txt rhel
vgchange -ay rhel

動かすとこんな感じやった。

rhel10-restore

vgchangeした後"rhel" now activeって表示できてるから、リストアも普通にできる。

restore.sh
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
mkdir /restore
mount -t xfs /dev/mapper/rhel-root /restore
cd /restore
zcat /backup/root.gz | xfsrestore - ./

mount -t xfs /dev/nvme0n1p2 /restore/boot
cd /restore/boot
zcat /backup/boot.gz | xfsrestore - ./

mount -t vfat /dev/nvme0n1p1 /restore/boot/efi
cd /restore/boot/efi
tar xzf /backup/boot_efi.tar.gz
sync;sync;sync

リストアできとるんやけどなぁ。

rhel10-restore

/boot/efiについてのエコーバックなんもないけど、ここも復旧はできてる。

rhel10-restore

そやのに、chrootして調整した後OS起動すると、vgchangeできてへんときみたいな応答になる。

rhel10-restore

DVDから起動してLVMの状態見るとlvsで見た時のフラグが下がってるかなって思ったから、lvchangeしてみたんやけどアカンかった。

rhel10-restore

起動のときgrubでレスキュー用のカーネル使ってみたら起動できる。

rhel10-restore

理由はわからんけど、lvmの確認コマンドでは構成した情報もどってこんかった。rhelってあったvgどこいってん。

rhel10-restore

blkidでブロックデバイス確認してみると、lvmで見えてたパーティションが見えるんやけどなぁ。

rhel10-restore

何か見落としてる気がするなぁ。

grubとdracutの知識が足りてへんのやけど、物理ホストでLVM使ってる環境作るチャンスが来たら追いかけることにしよか。

いつか気づいたらリストアできるようにしたいもんや。