vmware環境の中で
rhel10のホスト作った
。
普段クラウドの中で使ってると、インストールとか面倒なことせんでええし、awsのAMIとかバックアップあればリストアは簡単。
業務でサーバとして使うlinuxホストのディストリビューションは、ほぼredhat一択。他のディストリビューションって、2025年には見たことない。
稀に物理ホストでlinux立てることあるのと、そういうときはバックアップからリストアして巻き戻しできるようにしとかなアカン。
細かい手順がいるからvmware環境の中で練習してく。
rhel9でリストアできるように
almalinux9で検証
したことあるから、rhel10でできるかをvmware環境内でやってみる。
OS準備
windows11(24H2)のvmware17.6.4の中でrhel10をインストールして動かす。
接続準備
macからrhel10へssh接続して利用、データ少し入れといてバックアップしてからwindowsへrdp接続できるようにしとく。
普段使ってるのがmacやからrhelへはterminalから接続して利用。
LVM使わん
LVMのパーティションがあると、リストア後に
OS起動がどうしてもできん
かった。
LVMやめて、ディスクの基本ボリュームにroot/swap/boot/boot-efi置いた構成でリカバリすることにした。
リストアして動かす
毎日ちょっとずつやってったから時間かかったけど、動くところ見れた。
以下、リストアやってったときのメモ。
vmwareの中でrhel10の準備#
インストールしなおして準備してった。
OSインストールで変えたところ#
LVM使わん構成でインストールした状態を作ってOSを準備。
OSインストールのとき、ルートパーティションと/bootだけやとどうなるかってやってみたら/boot/efiパーティション作れって怒られる。
用意したるがな。左下の「使用できる領域」は、1.97MiBってどうしても端数が出てまうけど、これで進める。
そやけど/boot/efiはなんでfatなんやろなぁ。ext4とかxfsではアカンのよなぁ。
ssh接続する設定#
バックアップ取って材料作るまで、teraterm使ってwindowsから接続でもええんやけど、macから接続できるようにしとこか。
macでteratermマクロのようなこと(妄想) | ギャバンITサービス
ホスト名設定とかIPアドレスの固定化もやっとく。
ホンマはコマンドラインでやったほうがええんやろけど、リストアが目的やし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の情報を都度潰してからつないだ。
バックアップ用のディスク#
前はvmwareで作ったホストに普通のvmdkディスクをマウントしてバックアップしてたのを、rhel10でも同じことやってみる。
vmwareの中でディスクを追加。dfで利用率みると20GBもあれば十分かなと。
.vmdkをマウントするやり方が使えるから、USBメモリとかrdxでもいけるんとちゃうか(今は機材ないからできんけど)。
先にmkdir /backupしといてディスクを/backupにマウントして使う。フォーマットもGUIでできる。
21GBって見えるけど無視。オプションもわけわかめやけど初期値やから無視。ext4で初期化してマウントポイント指定したらええ。
/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でやってく。
xfsdump/gitのインストール
selinuxの無効化(SELINUX=disabledにする)とOS再起動
gitクローン(今回もwinmergeでやってみた)
ディスクの情報バックアップ(fdisk/parted/blkid/fstab)
⭐️最初はやるつもりやったのがLVM戻らんからvgcfgbackupは取らん
LVMの状態バックアップ(pvdisplay/vgdisplay/lvdisplay)
⭐️最初はやるつもりやったのがLVM戻らんから今回は取らん
システムの状態バックアップ(systemctlのリストと、dnfのリスト)
efi/grub関連の設定保管
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) /\E FI\r edhat\s himx64.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ってなんやろ。リストアするとき丸々同じように戻るもんかな。
ヒントを書いておられる方がいた。作者さんありがとう。
【rEFInd】別ディスクのWindowsブートマネージャを起動する #Linux - Qiita
「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のインストールで使ったisoファイルをvmwareのcd/dvdから使えるようにしといて、vmwareでrhel10起動し、F2キーを押す。
ブートマネージャでcdromからの起動選ぶ。
起動したらTroubleshooting選ぶ。
「Rescue a Red Hat Enterprise Linux system」を選ぶ。
「3) Skip to shell」を選んで「Please press ENTER to get a shell」でenter押す。
ここまででbash使えるようになる。
バックアップを参照できるようにしとく#
新規ディスクと、さっき作ったbackupのパーティションが見えるから、mkdirしてマウントする。
これでバックアップしたデータを参照できるし、復活の呪文が使える。
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はすっからかん。
パーティションを初期化#
今回も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%
スクリプトにして動かしてみたらできてるっぽい。
partedを対話型で起動してpって入力すると、ブートのフラグできとるのが見える。
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
動かしたときはこんな感じ。
ファイルシステム作る#
/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
やってみたらこうなる。文字コードの変換テーブルのメッセージ出てるけど、全角文字使ってデータ保存するわけやないし、いったんこのままいっとく。
ここまでで、リストアの準備が完了。
リストアする#
バックアップしといたものをリストアしてく。
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
動かしたらこうなる。うまいこといっとるな。
tarで復元やし、/boot/efiについてのエコーバックなんもないけど、復旧はできとる。
そういえば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関連設定をやってく。
procのマウントポイント見えへんけど、必要は必要。
ブートマネージャの設定してく。まずはBootって始まる5と4を潰す。
入力したのはこの内容。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秒のインターバルもつけとく。
grub設定の復旧#
grub.cnfにはblkidにあるuuidがもう書いてある状態やから、ここはこのまま。
fstab修正#
/etc/fstabにvfatのuuid書いてある箇所を実態に寄せてく。
fstabにある0FA8-84DDってあるのを39D0-BCC3に修正する。
GUI起動やなくてisoイメージからの起動やし、キー入力がもっさりもっさり動いてくれてviめっちゃ使いづらい!!
最後に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
blkidの確認#
blkidのUUIDが/etc/fstabの内容とあってるか確認。この見直し大事。
辻褄があってへんかったら起動に失敗するで。
syncしてOS停止と起動#
chrootからexitしてshutdownする。
いったんshutdownして、dvdを起動時にマウントしないようにvmの設定しとく。
さぁ、起動してみましょ!
アカンなぁ。くるんくるん回る。
なんやろなぁ。10分ぐらいこの状態続きながら考えてみて、grubのメニューから別のカーネルで起動してみた。
アララ!? 起動できる!? dracutで作ったカーネルがアカン? dracutせんでもええの!?
mac側から接続してみて、/bootにあるinitramfsをdracutで作り直す前のものに変えてみた。
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いらんかったっちゅうことか。
結局、/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をデスクトップにコピーしとく。
比べてみる#
実務ではwinmergeで比べてること多いから使ってく。
git cloneしたwinmergeのフォルダ#
小さなファイルがいっぱい入っとるのが完全一致。.gitまで一致しとる。緑色のチェックマークええねぇ。
xfsdumpしたもんをxfsrestoreしてるんやから、そらそうやわなぁ。
fdiskの内容#
バックアップ領域のディスク/dev/hdaの位置が、右側のリストア後のときに下のほうに行ってしもてるのはOK。ディスクの発見順に表示されてるみたいやし順番なんかどうでもええ。
nvme01nのディスクはvmwareで削除して作り直したからDisk identifierっていうところが違うのもOK。
パーティションのサイズとタイプは違っててもOSから読んで使えてるからOK。
partedの内容#
これもサイズとか名前が微妙に違う程度。右端のフラグにあるboot,espがあってたらええ。
blkidの内容#
winmergeの上半分の画面が真っ赤っかやけど、差異があるのはwinmerge画面下段の右側のパーティションラベルとそのUUID。
下段の左側のxfsとswapのUUIDが、キレイにおうてる。
fstabの内容#
FATのパーティションはblkidの結果にあるUUIDで書き換えたから違っててええ。
efibootmgrの内容#
5番目まであったのが8番目までに増えとる。almalinux9のときもそやったな。
リストアした後chrootしていらんもん削ったんやけどなぁ。削ってもええけどOS起動できたから放置。
grubの内容#
いじってへんのやから完全一致するわなぁ。
dnfとsystemctlで管理するサービスの内容#
これも完全一致。利用者にとってはここが一番大事かな。モジュールのリストは千行超えやけど完全一致するわな。
有効にしてるサービスもおうてる。
実務で比べるとしたら、他にも業務アプリケーションのデータフォルダとかを比べたらええ。
所有権も必要やったら比べる。ls -lRaの結果でええんやろけど、フォルダのタイムスタンプはズレるはず。
失敗の巻#
パーティションにLVMがあるとリストアうまく行かんかった。
いつかうまく行く方法を見つけられるかもしれんけど、OS起動できんかった。
うまく行く方法見つけられへんかったから、めっちゃくやしい。いつかチャレンジしなおしたい。
バックアップしたときに/dev/nvme0n1p3ってある中のパーティションの中のVGが、リストアしたときに認識できん。
リストアのとき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
動かすとこんな感じやった。
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
リストアできとるんやけどなぁ。
/boot/efiについてのエコーバックなんもないけど、ここも復旧はできてる。
そやのに、chrootして調整した後OS起動すると、vgchangeできてへんときみたいな応答になる。
DVDから起動してLVMの状態見るとlvsで見た時のフラグが下がってるかなって思ったから、lvchangeしてみたんやけどアカンかった。
起動のときgrubでレスキュー用のカーネル使ってみたら起動できる。
理由はわからんけど、lvmの確認コマンドでは構成した情報もどってこんかった。rhelってあったvgどこいってん。
blkidでブロックデバイス確認してみると、lvmで見えてたパーティションが見えるんやけどなぁ。
何か見落としてる気がするなぁ。
grubとdracutの知識が足りてへんのやけど、物理ホストでLVM使ってる環境作るチャンスが来たら追いかけることにしよか。
いつか気づいたらリストアできるようにしたいもんや。