故障した古いNASドライブからデータを回復しようとしています。なぜ失敗したのかはわかりませんが、ドライブ上のファイルは比較的破損していませんでした。私は私の人生をより簡単にする正しい正しい方法でこれをインストールしたいと思ってこれをもう一度見ています。実際の正しいドライブのように、実際にインストールする際にいくつかの問題がありました。問題のドライブはSDBであり、パーティションSDB8には私のすべてのデータがあります。
[dan-mech15g2rx sdb8]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 1 0B 0 disk
sdb 8:16 0 1.8T 0 disk
├─sdb1 8:17 0 19.1M 0 part
├─sdb2 8:18 0 18M 0 part
├─sdb3 8:19 0 954M 0 part
├─sdb4 8:20 0 953M 0 part
├─sdb5 8:21 0 191M 0 part
├─sdb6 8:22 0 954M 0 part
├─sdb7 8:23 0 976M 0 part
└─sdb8 8:24 0 1.8T 0 part
└─md127 9:127 0 1.8T 0 raid1
nvme0n1 259:0 0 1.8T 0 disk
├─nvme0n1p4 259:1 0 381.5G 0 part
├─nvme0n1p5 259:2 0 300M 0 part /boot/efi
├─nvme0n1p6 259:3 0 31.3G 0 part [SWAP]
├─nvme0n1p7 259:4 0 250G 0 part /
└─nvme0n1p8 259:5 0 1.2T 0 part /home
mdadmがこれをmd127にアセンブルしました。 1つのドライブのRaid1アレイ。はい、それは不可能なことですが、事前に構築されたNASがこのように構成されています。
[dan-mech15g2rx sdb8]# mdadm -Dv /dev/md127
/dev/md127:
Version : 1.2
Creation Time : Sat Jul 13 20:02:09 2013
Raid Level : raid1
Array Size : 1949349781 (1859.04 GiB 1996.13 GB)
Used Dev Size : 1949349781 (1859.04 GiB 1996.13 GB)
Raid Devices : 1
Total Devices : 1
Persistence : Superblock is persistent
Update Time : Sun Apr 30 14:35:46 2023
State : clean
Active Devices : 1
Working Devices : 1
Failed Devices : 0
Spare Devices : 0
Consistency Policy : resync
Name : BA-001075392B1C:1
UUID : fca7e030:4cde51c2:8d9cd534:be1158a5
Events : 96133
Number Major Minor RaidDevice State
0 8 24 0 active sync /dev/sdb8
このRAIDドライブをマウントしようとすると、次の結果が表示されます。
[dan-mech15g2rx sdb8]# mount /dev/md127 /mnt/sdb8
mount: /mnt/sdb8: unknown filesystem type 'LVM2_member'.
dmesg(1) may have more information after failed mount system call.
これは私のLVグループです。
[dan-mech15g2rx sdb8]# vgscan
[dan-mech15g2rx sdb8]# lvscan
[dan-mech15g2rx sdb8]# lvdisplay
[dan-mech15g2rx sdb8]# vgdisplay
[dan-mech15g2rx sdb8]#
私は過去数日間LV製品を使用してきましたが、ある種のLV操作の一部としてドライブが消去されるのを防ぐのに非常に慎重です。本当にこのドライブに入り、ファイルを取り出して完全に消去したいと思います。この時点で進む方法のアイデアがあれば、大変感謝します。
答え1
心配することなく、テスト目的でLVMブロックデバイスの「読み取り専用コピー」を作成できます。
dmsetup create lvm_pv_ro --readonly --table "0 "$(blockdev --getsz /dev/md127)" linear /dev/md127 0"
それから:
pvscan --cache /dev/mapper/lvm_pv_ro
pvs
vgs
アップデート1
「ブロックデバイスのコピー」を作成すると、LVMが同じPVを2回見て重大な問題が発生する可能性があることに気づきました(ミラーリングされたbtrfsボリュームでも同様の問題が発生する可能性があります)。これを処理することは可能かもしれませんが、rawブロックデバイスを使用してLV読み取り専用のみを有効にする方が簡単です。
pvscan --cache /dev/md127
vgchange -ay --readonly vg_name
# mount LVs
mount /dev/vg_name/lv_name /path/to/mountpoint
もちろん、ファイルシステムを読み取り専用でマウントすることもできます。奇妙なことに、これはすべての書き込みアクセスをブロックするわけではありません(コミットされていないログエントリを処理することは例外です)。