アップデート1

アップデート1

故障した古い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

もちろん、ファイルシステムを読み取り専用でマウントすることもできます。奇妙なことに、これはすべての書き込みアクセスをブロックするわけではありません(コミットされていないログエントリを処理することは例外です)。

関連情報