為什麼我的驅動器沒有使用 cryptsetup 加密?
我已遵循本指南,希望通過 LVM 對具有單個文件系統的輔助驅動器進行完全加密。
這正是我按順序所做的:
fdisk /dev/sdb # goes to interactive promt (choose defaults) pvcreate /dev/sdb1 vgcreate vg_crypt /dev/sdb1 lvcreate -l 100%FREE -n storage vg_crypt cryptsetup luksFormat -c aes-xts-plaint64 -s 512 /dev/mapper/vg_crypt-storage # set passphrase cryptsetup open /dev/mapper/vg_crypt-storage storage # use passphrase mkfs.ext4 /dev/mapper/storage mkdir /storage mount /dev/mapper/storage /storage echo "cryptdevice=/dev/vg_crypt/storage:storage root=/storage" >> /etc/default/grub echo "storage /dev/mapper/vg_crypt-storage /dev/urandom storage,cipher=aes-xts-plain64,size=256" >> /etc/crypttab echo "/dev/mapper/vg_crypt-storage storage ext4 defaults 0 0" >> /etc/fstab echo "this is a test" >> /storage/test reboot
重新啟動後,我發現我可以繞過密碼片語輸入請求來
/dev/sdb1
使用Ctrl ^c
. 我期待這會阻止我訪問/dev/sdb
. 令我驚訝的是,它是完全可讀的,並且文件以純文字形式顯示。我是否配置錯誤?
我注意到了這一點:
cd /storage df . Filesystem ..... /dev/mapper/othervg_root .... (on sda!)
所以這個目錄存在於我的 sda 上的 LVM 上。但我想通過掛載
/dev/mapper/storage
到/storage
,我會將該目錄放在sdb1
. 不知道我在這裡缺少什麼。所以我也注意到沒有密碼登錄,
/dev/mapper/storage
不存在。所以我去頭並刪除/storage
,然後重新啟動。這次我輸入了密碼,發現/dev/mapper/storage
確實存在,也確實存在/storage
(儘管我剛剛刪除了它),但它仍然在sda
. 我很混亂。現在我注意到
lsblk
沒有用於儲存的掛載點。所以我像以前一樣重新安裝。現在df /storage
確實將文件系統顯示為/dev/mapper/storage
. 這次我重新啟動並輸入了密碼。/storage
又是在錯誤的文件系統下。出於某種原因,引導時的安裝是錯誤的。它必須在 etc 文件中。我通讀了 /etc/*tab 文件的手冊頁並進行了一些更改:
fstab:
/dev/mapper/vg_crypt-storage /storage ext4 defaults 0 0 # add the '/' in /storage
密碼表:
storage /dev/mapper/vg_crypt-storage none cipher=aes-xts-plain64,size=512 # changed size to match key in cryptsetup # changed key to none (/dev/urandom is something particular to swap i guess) # removed uneccesary 'storage' in key=val list. I saw 'root' in the guide and thought i needed the name of my crypto device
我從 Grub 中刪除了該行,因為我不知道那在做什麼。我
sdb1
用{lv,vg,pv}remove
命令刪除了所有 LVM 的東西,然後刪除了 partitionsdb1
。我暫時從文件中註釋掉了這些行/etc/*tab
並重新啟動。最後,我重做了分區、LVM 方案、ext4 文件系統,並取消了
/etc/*tab
文件中的 2 行註釋。現在,當我重新啟動時,我遇到了啟動問題,它讓我進入了緊急模式。
journalctl -xb
向我展示了一些特殊的線條:.... kernel: EXT4-fs (dm-3): VFS: Can't find ext4 filesystem .... systemd[1]: Failed to mount /storage
對於本地文件系統的依賴關係、重新標記文件系統和遷移本地 SELinux 策略更改,還有其他失敗。不確定這些是否完全相關。
我想通了嗚嗚!
問題在
/etc/fstab
.我的正常
sda
分區是這樣安裝的:/dev/mapper/vg_sda-root / ext4 defaults 0 0 /dev/mapper/vg_sda-swap swap ext4 defaults 0 0 /dev/mapper/vg_sda-home /home ext4 defaults 0 0
所以我很自然地遵循了這個計劃並添加了我的:
/dev/mapper/vg_crypt-storage storage ext4 defaults 0 0
此行的問題在於第一個欄位fs_spec,如fstab(5) 手冊頁中所述。“此欄位描述要掛載的塊特殊設備或遠端文件系統。”
由於 crypttab 在 fstab 之前處理,因此解密的設備可以作為 訪問
/dev/mapper/storage
,而不是作為原始 LVM 映射設備名稱訪問/dev/mapper/vg_crypt-storage
。因此,通過將我的線路更改
/etc/fstab
為:/dev/mapper/storage storage ext4 defaults 0 0
/etc/fstab
然後將正確的解密設備安裝到/storage
.我已經通過重新啟動並取消密碼(
Ctrl ^C
3 次)進行了測試,這迫使我進入緊急模式。在這裡,加密設備不存在,必須手動解密和安裝。我想我清楚/正確地解釋了這一點,但請在我遺漏的任何地方糾正我!