Gentoo

將根分區複製到 dm-crypt 加密的分區上

  • April 17, 2015

我在 25.93GB/62.43GB 分區上安裝了 Gentoo Linux /dev/sda4。磁碟上的其他分區是 150MB /boot/dev/sda1其他兩個分區有 56,66GB 未使用空間。

我打算用 加密未使用的空間dm-crypt,將其格式化為 ext4 並在將我的安裝遷移到它之後,對舊分區進行核對。我的問題是:

  • 這可能嗎?或者是否需要進行許多調整才能使安裝在加密卷上執行/dev/sda2
  • 這是一種有效的方法嗎?考慮到我的 25.9GB Gentoo,如果我只是加密整個磁碟並再次安裝 Gentoo(和所有軟體包)對我來說會不會很麻煩?
  • 我應該使用encfs還是ecryptfs代替dm-crypt這裡?他們會提供同等的安全保障嗎?
  • 我應該使用什麼算法來加密分區?我的處理器沒有 AES-NI。
  • 我應該使用什麼來將加密分區與另一個同步?類似的東西會dcfldd為此工作嗎?

從遷移的分區寫入編輯:

  • 刪除未使用的分區並新建一個未格式化的分區後/dev/sda2,我執行:
cryptsetup luksFormat /dev/sda2
cryptsetup luksOpen /dev/sda2 encrypt
pv /dev/zero > /dev/mapper/encrypt

pv這裡用於監控寫入零的進度,之後我將加密分區格式化為 ext4 和mkfs.ext4 /dev/mapper/encrypt.

  • rsync為了同步分區,我在從 live USB 啟動 PC 後使用了 YoMismo 的建議。但它並沒有讓我進入chroot,我不得不重新啟動我的舊分區,然後chroot從那裡開始。我在這個過程中執行:
mkdir /tmp/old_partition /tmp/new_encrypt
mount /dev/sda4 /tmp/old_partition
mount /dev/mapper/encrypt /tmp/new_encrypt
cd /tmp/new_encrypt
rsync -av /tmp/old_partition/* .

重新啟動舊分區後/dev/sda4,打開並掛載/dev/sda2和掛載虛擬核心文件系統:

  • 我做了/etc/crypttab一個root UUID=<uuid of /dev/sda2> none luks
  • 我改變/etc/fstab告訴我的根分區是UUID=<uuid of mapper>.
  • 我改變了:我在行尾/boot/grub/grub.conf刪除了,並設置了一個加密設備。root=<root>``kernel``crypt_root=UUID=<uuid> root=/dev/mapper/root
  • genkernel --install --luks initramfs在luks 的支持下,我跑去製作新的 initramfs。

現在我可以啟動並執行它,唯一剩下的就是將舊分區設置為著火。

1.- 是的,這是可能的,但您必須進行一些調整。

2.-你不能加密整個磁碟,如果你想讓你的系統啟動,至少引導分區必須是未加密的(有人必須要求解密密碼-initrd-並且你需要它未加密)。

3.-有一些缺陷,你可以在這裡encfs閱讀它們。我會使用 dm-crypt 來完成這項工作。

4.- 沒辦法,也許是兩條魚?

5.- 我會使用 Live CD/USB 來完成這項工作。我不知道您留下的空間是否足以容納其他分區上的數據,如果是(分區未滿)我會:

  • 首先你需要決定你想要什麼樣的分區方案。我假設您只需要 /、/boot 和交換。所以 /boot 不需要弄亂,我還將假設未使用分區中剩餘的空間足以容納您想要放置在加密分區中的數據(在這種情況下是 / )。
  • 使用 life CD 啟動您的系統。
  • 假設您的目標分區是 /dev/sdc1,cryptsetup luksFormat /dev/sdc1您是否會被要求輸入加密密碼。之後打開加密分區cryptsetup luksOpen /dev/sdc1 Enc將所有零寫入它dd if=/dev/zero of=/dev/mapper/Enc並創建文件系統mkfs.ext4 /dev/mapper/Enc
  • 現在掛載您的分區,複製文件並將根更改為新分區。

mkdir /tmp/O /tmp/D

mount /dev/sda4 /tmp/O

mount /dev/mapper/Enc /tmp/D

cd /tmp/D;rsync -av /tmp/O/* .

mount --bind /dev dev

mount --bind /proc proc

mount --bind /proc/sys sys

mount --bind /sys sys

chroot /tmp/D

mount /dev/sda1 /boot

blkid- 用於辨識您的分區 UUID 並使用該資訊來修改 grub 配置文件和您的 fstab(根分區設備應該是 /dev/mapper/root_crypt)。修改您的 /etc/crypttab 以便在那裡引用新的加密分區。創建一條線,如root_crypt UUID=your/encrypted/dev/uuid none luks. grub-update grub-install到您的 grub 必須位於的位置,update-initramfs以便在您的 initrd 中更新新的更改。

如果我沒有遺漏任何內容,除非您擔心交換分區,否則您現在應該準備好mkswapmkfs.ext4. 您還需要將交換分區添加到 /etc/crypttab 修改 fstab 以便 /dev/mapper/name_swap_you_created_in_etc_crypttab 是交換分區的設備,並且update-initramfs.

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