
我在 RHEL-7 上遇到了奇怪的情況。我在磁碟分割區上建立一個裝置映射器(crypt),然後將資料(位元組)從磁碟分割區複製到映射器。 blkid 輸出有兩個 UUID 條目 - 一個用於磁碟分割區,另一個用於映射器。 /dev/disk/by-uuid 下的 UUID 指向映射器,因為它被覆蓋了。
塊輸出:
/dev/sdc1: UUID="1e762c4a-0b12-40fc-9f53-a825016211a0" TYPE="ext4"
/dev/mapper/my_mapper: UUID="1e762c4a-0b12-40fc-9f53-a825016211a0" TYPE="ext4"
/dev/disk/by-uuid 輸出:
lrwxrwxrwx 1 root root 10 Jan 31 10:24 1e762c4a-0b12-40fc-9f53-a825016211a0 -> ../../dm-4
現在,我再次將資料(位元組)從映射器複製到磁碟分割區並關閉映射器。 /dev/disk/by-uuid 下的 UUID 指向磁碟分割區,blkid 輸出顯示磁碟分割區的 UUID。
塊輸出:
/dev/sdc1: UUID="1e762c4a-0b12-40fc-9f53-a825016211a0" TYPE="ext4"
/dev/disk/by-uuid 輸出:
lrwxrwxrwx 1 root root 10 Jan 31 10:24 1e762c4a-0b12-40fc-9f53-a825016211a0 -> ../../sdc1
但是,一旦我嘗試掛載磁碟分割區,就會收到錯誤:
mount -t ext4 -o rw /dev/sdc1 /mnt/plainDisk
mount: wrong fs type, bad option, bad superblock on /dev/sdc1.
然後磁碟從 blkid 輸出中消失。 /dev/disk/by-uuid 仍然存在且具有正確的 UUID,並且 lsblk 顯示磁碟。
我用來blockdev --getsize64
取得磁碟大小(以位元組為單位),然後複製所有這些位元組。
任何輸入或指針表示讚賞。不過我在 RHEL-6 上沒有遇到這個問題。
附加資訊:
- 複製所有資料後,我將使用
fsync
/dev/sdc1 檔案描述符。 - 當第二個副本後 /dev/sdc1 存在時,我驗證了 dumpe2fs 輸出。它與原始值匹配。但是,一旦刪除該條目,dumpe2fs 就會給予錯誤:
dumpe2fs 1.42.9(2013 年 12 月 28 日)
dumpe2fs:嘗試開啟 /dev/sdc1 時超級區塊中的錯誤幻數
找不到有效的檔案系統超級區塊。
答案1
問題是,在將資料從 複製回my_mapper
時sdc1
,my_mapper
仍然已安裝。這在某種程度上影響了設備上的超級塊。我運行dumpe2fs
並檢查了一些與以下內容相關的條目山在超級塊中。
在複製資料之前卸載映射器解決了該問題。