Ubuntu

恢復失去的資訊

  • April 19, 2018

我在我的電腦上安裝了一個 LVM 儲存,裡面有非常重要的資訊/HFT

這是我安裝 LVM 儲存的方式:

  1. sudo pvcreate /dev/sdb1 /dev/sdc1
  2. sudo vgcreate VG /dev/sdb1 /dev/sdc1
  3. sudo lvcreate -n LV -L 3T VG
  4. sudo mkfs .ext3 /dev/VG/LG(可能是.ext4
  5. mkdir /HFT
  6. sudo mount /dev/VG/LG /HFT

在重新啟動之前,我得到了一個不錯的 3TB 儲存空間,我可以清楚地看到它df -h。現在,重新啟動電腦後,如果我 make df -h,我得到了

┌─╼ [~]
└╼ cd /dev
autofs           disk         fuse       i2c-11   input     loop-control        psaux   sdb   sg5       tty0   tty20  tty32  tty44  tty56      ttyS0   ttyS20  ttyS4      vboxdrvu    vcsa3
block            dm-0         fw0        i2c-12   kmsg      mapper              ptmx    sdb1  sg6       tty1   tty21  tty33  tty45  tty57      ttyS1   ttyS21  ttyS5      vboxnetctl  vcsa4
bsg              dm-1         hidraw0    i2c-13   kvm       mcelog              ptp0    sdc   sg7       tty10  tty22  tty34  tty46  tty58      ttyS10  ttyS22  ttyS6      vboxusb     vcsa5
btrfs-control    dm-2         hidraw1    i2c-14   lightnvm  mei0                ptp1    sdd   sg8       tty11  tty23  tty35  tty47  tty59      ttyS11  ttyS23  ttyS7      vcs         vcsa6
bus              dm-3         hidraw2    i2c-2    log       mem                 pts     sde   shm       tty12  tty24  tty36  tty48  tty6       ttyS12  ttyS24  ttyS8      vcs1        vfio
cdrom            dri          hidraw3    i2c-3    loop0     memory_bandwidth    random  sdf   snapshot  tty13  tty25  tty37  tty49  tty60      ttyS13  ttyS25  ttyS9      vcs2        vga_arbiter
cdrw             drm_dp_aux0  hidraw4    i2c-4    loop1     mqueue              rfkill  sdg   snd       tty14  tty26  tty38  tty5   tty61      ttyS14  ttyS26  ubuntu-vg  vcs3        vhci
char             dvd          hpet       i2c-5    loop2     net                 rtc     sdh   sr0       tty15  tty27  tty39  tty50  tty62      ttyS15  ttyS27  uhid       vcs4        vhost-net
console          dvdrw        hugepages  i2c-6    loop3     network_latency     rtc0    sg0   stderr    tty16  tty28  tty4   tty51  tty63      ttyS16  ttyS28  uinput     vcs5        vhost-vsock
core             ecryptfs     hwrng      i2c-7    loop4     network_throughput  sda     sg1   stdin     tty17  tty29  tty40  tty52  tty7       ttyS17  ttyS29  urandom    vcs6        zero
cpu              fb0          i2c-0      i2c-8    loop5     null                sda1    sg2   stdout    tty18  tty3   tty41  tty53  tty8       ttyS18  ttyS3   usb        vcsa
cpu_dma_latency  fd           i2c-1      i2c-9    loop6     port                sda2    sg3   tpm0      tty19  tty30  tty42  tty54  tty9       ttyS19  ttyS30  userio     vcsa1
cuse             full         i2c-10     initctl  loop7     ppp                 sda3    sg4   tty       tty2   tty31  tty43  tty55  ttyprintk  ttyS2   ttyS31  vboxdrv    vcsa2
┌─╼ [/dev]
└────╼ df -h
Filesystem                   Size  Used Avail Use% Mounted on
udev                          34G     0   34G   0% /dev
tmpfs                        6.7G   11M  6.7G   1% /run
/dev/mapper/ubuntu--vg-root  151G   61G   83G  43% /
tmpfs                         34G   29M   34G   1% /dev/shm
tmpfs                        5.0M  4.0K  5.0M   1% /run/lock
tmpfs                         34G     0   34G   0% /sys/fs/cgroup
/dev/sda2                    705M  401M  253M  62% /boot
/dev/sda1                    511M  4.7M  507M   1% /boot/efi
tmpfs                        6.7G   16K  6.7G   1% /run/user/121
tmpfs                        6.7G   20K  6.7G   1% /run/user/1000
/home/infinity/.Private      151G   61G   83G  43% /home/infinity

現在,/HFT它仍然存在,但它是空的。

我不知道我是否失去了一切。有沒有辦法恢復資訊?為什麼重新啟動電腦後整個過程會清除所有內容?將來不會再次發生此類錯誤的正確方法是什麼?

更新

sudo lvdisplay
 WARNING: Device for PV rat7TF-lEMd-U3Gi-29du-7Fn3-2bNC-9CVmqL not found or rejected by a filter.
 --- Logical volume ---
 LV Path                /dev/VG/LV
 LV Name                LV
 VG Name                VG
 LV UUID                Bm0ThM-KWDU-oyjm-F8Zt-NXdF-yyFO-2rvM9d
 LV Write Access        read/write
 LV Creation host, time infinity-ThinkStation-D30, 2018-04-16 15:00:57 -0400
 LV Status              NOT available
 LV Size                3.00 TiB
 Current LE             786432
 Segments               2
 Allocation             inherit
 Read ahead sectors     auto

 --- Logical volume ---
 LV Path                /dev/ubuntu-vg/root
 LV Name                root
 VG Name                ubuntu-vg
 LV UUID                f1TYvS-XFq1-Z6Nu-iuXg-H95j-0XUN-8J4vi3
 LV Write Access        read/write
 LV Creation host, time ubuntu, 2017-11-14 13:28:06 -0500
 LV Status              available
 # open                 1
 LV Size                154.38 GiB
 Current LE             39522
 Segments               1
 Allocation             inherit
 Read ahead sectors     auto
 - currently set to     256
 Block device           253:1

 --- Logical volume ---
 LV Path                /dev/ubuntu-vg/swap_1
 LV Name                swap_1
 VG Name                ubuntu-vg
 LV UUID                q2kHAa-Q3jc-8C1t-JQvi-PtTo-3KR4-zoNH2a
 LV Write Access        read/write
 LV Creation host, time ubuntu, 2017-11-14 13:28:07 -0500
 LV Status              available
 # open                 1
 LV Size                67.92 GiB
 Current LE             17387
 Segments               1
 Allocation             inherit
 Read ahead sectors     auto
 - currently set to     256
 Block device           253:2

更新 2

┌─╼ [/]
└────╼ fdisk -l /dev/sdc
fdisk: cannot open /dev/sdc: Permission denied
┌─╼ [/]
└╼ sudo fdisk -l /dev/sdc
Disk /dev/sdc: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
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: dos
Disk identifier: 0x9619624a

Device     Boot Start        End    Sectors  Size Id Type
/dev/sdc1        2048 3907026943 3907024896  1.8T  7 HPFS/NTFS/exFAT

我嘗試執行 sudo mount /dev/VG/LV /HFT,但似乎無法正常工作。我遇到了問題mount: /HFT: special device /dev/VG/LV does not exist.

更新 3

root@infinity-ThinkStation-D30:/HFT# lvchange -ay --activationmode partial /dev/VG/LV
 PARTIAL MODE. Incomplete logical volumes will be processed.
 WARNING: Device for PV rat7TF-lEMd-U3Gi-29du-7Fn3-2bNC-9CVmqL not found or rejected by a filter.

┌─╼ [/HFT]
└╼ sudo mount /dev/VG/LV /HFT
mount: /HFT: can't read superblock on /dev/mapper/VG-LV.

這裡發生的事情是你沒有/dev/sdc1,其中包含一半的捲組VG。沒有它,您將無法啟動VG,這反過來意味著您無法訪問邏輯卷LV

目前,您無法訪問您在VG/LV. 它可能儲存在失去的磁碟上,或者您可能很幸運並且足夠多的數據可能在存在的磁碟上。

我建議您採取的非侵入性步驟:

  1. 關閉系統。仔細檢查磁碟的所有連接器/dev/sdc以確保其完全連接。重新開始。
  2. 執行fdisk -l /dev/sdc以查看分區是否存在。
  3. 查看/etc/lvm/lvm.conf是否有過濾器阻止訪問您的/dev/sdc1. 忽略所有以 開頭的行#。其餘的都不應該有一個提到filter.

除非其他一切都失敗了,否則我不建議您採取侵入性步驟:

  1. vgchange -ay /dev/VG --activationmode partial

這 ↑ ↑ 可能會破壞您的數據。另一方面,它可能會讓你恢復它。 2. 執行mount -o ro,noload /dev/VG/LV /HFT以掛載它可以找到的文件系統並查看是否存在任何數據。如果是,請將其複製到安全位置並重建 LVM 卷組。該掛載是只讀的,因此您將無法更改 LV 中的任何內容。


順便說一句,如果您有重要數據,您可以做兩件事來減輕其潛在損失

  1. 定期進行自動備份。最好到一個單獨的位置。(我使用雲儲存提供商。)
  2. 使用 RAID 1 在兩個相同大小的磁碟上鏡像數據。您需要 2 個 3TB 磁碟來儲存 3TB 數據,但這是值得的。真的是這樣。您可以使用mdadmRAID 工具集或直接在 LVM 中執行此操作。

引用自:https://unix.stackexchange.com/questions/438822