Làm cách nào để tạo lại phân vùng dm-crypt / LUKS được mã hóa với UUID được xác định trước trên Linux?


1

Tôi có / khu vực trao đổi của Ubuntu 14.04 LTS (và Linux Mint 17.1 LTS) được mã hóa trong dm-crypt / LUKS. / khu vực trao đổi cư trú tại / dev / mapper / UUID_1 / dev / mapper / UUID_2 . Có thể tạo lại / dev / mapper / UUID (ví dụ: trên ổ cứng khác nhau) (tất nhiên có cùng UUID)? Nó sẽ giúp phục hồi hệ thống với TAR trong trường hợp có thảm họa. Như bạn đã biết, TAR ghi lại UUID của phân vùng đã sao chép. Hơn nữa, grub.cfg, / etc / fstab và initframs cũng chứa số này.

sudo Tune2fs / dev / mapper / UUID ‐U UUID

lệnh không hoạt động.

cryptsetup luksUUID / thiết bị / - UUID

chỉ có thể thay đổi UUID của container bên ngoài.

Cảm ơn bạn đã phản hồi.

Câu trả lời:


0

Bạn có hai UUID cho mỗi phân vùng được mã hóa.

UUID của hệ thống tập tin

Được dùng trong /etc/fstab và bởi GRUB (vì vậy đừng quên sử dụng sudo update-grub sau khi thay đổi). Có thể được thay đổi với:

sudo tune2fs ‐U "<fsUUID>" /dev/mapper/<luksUUID>

...Ở đâu là UUID của phân vùng LUKS tương ứng (có thể tìm nó trong /etc/crypttab ) và <fsUUID> là hệ thống tập tin UUID cần phải được thiết lập. Ví dụ:

sudo tune2fs ‐U "81db8bc2-6cc1-4272-beab-8c1d667cfa93" /dev/mapper/310919c2-aec9-4641-b3d2-6d523395db34

UUID của phân vùng LUKS

Được dùng trong /etc/crypttab. Có thể được thay đổi với:

sudo cryptsetup luksUUID --uuid "<luksUUID>" /dev/sdxX

...Ở đâu là UUID của phân vùng LUKS cần được đặt và / dev / sdxX là tên thiết bị được mã hóa LUKS. Ví dụ:

sudo cryptsetup luksUUID --uuid "310919c2-aec9-4641-b3d2-6d523395db34" /dev/sda1

Nhưng tốt hơn hết là khôi phục toàn bộ tiêu đề LUKS (nếu bạn không thay đổi khóa mã hóa). Tiêu đề LUKS không lưu trữ kích thước phân vùng nên có thể được sử dụng để khôi phục lại hầu như mọi kích thước phân vùng. Ngoài ra, việc khôi phục tiêu đề là đủ để giải trí định dạng phân vùng LUKS (nghĩa là luksFormat không bắt buộc trong trường hợp này). Có thể được thực hiện với luksHeaderRestore (sao lưu được thực hiện với cách khá giống với luksHeaderBackup ):

sudo cryptsetup luksHeaderRestore --header-backup-file "<HeaderBackupFile>" /dev/sdxX

...Ở đâu là UUID của phân vùng LUKS cần được đặt. Ví dụ:

sudo cryptsetup luksHeaderRestore --header-backup-file "/home/user/MyLuksHeader.Backup" /dev/sda1

Tóm lược

Vì vậy, các bước khôi phục là:

  1. Tạo phân vùng mới.
  2. Khôi phục tiêu đề LUKS.
  3. Mở khóa phân vùng LUKS
  4. Khôi phục hệ thống tệp bằng bất kỳ thứ nào trong số này:
    • Khôi phục hình ảnh hệ thống tệp (ví dụ: sử dụng partclone ).
    • Tạo hệ thống tập tin:
      1. Định dạng thiết bị mới.
      2. Sao lưu dự phòng.
      3. Khôi phục hệ thống tập tin UUID, nếu cần.

Cũng thế

Xin lưu ý rằng việc sử dụng nhãn cho LUKS và hệ thống tệp thay vì UUID có thể đơn giản hóa cấu hình và làm cho nó dễ đọc hơn.


2 ý tưởng tốt hơn: 1) KHÔNG SỬ DỤNG / dev / mapper / sdXY trong /etc/fstab HOẶC LÀ /etc/crypttab sử dụng một dòng như thế này: UUID = & lt; fs_UUID & gt; & lt; UUID & gt; & lt; fs & gt; & lt; tùy chọn & gt; điều này mạnh mẽ hơn nhiều, đặc biệt là trong trường hợp di chuyển phân vùng / đĩa .... 2) xem xét cryptsetup-reencrypt và chạy với công tắc --uuid (điều này đặt uuid do người dùng định nghĩa cho các bit được mã hóa lại) - - đây là mã hóa lại tại chỗ, vì vậy nếu đây là trên system drive chạy nó từ một phương tiện truyền thông trực tiếp hoặc hệ điều hành khác ...
linuxdev2013

Thanx, nhưng thực tế 1) / dev / mapper thiết bị chỉ được sử dụng với tiện ích Tune2fs (nó yêu cầu tên đường dẫn tệp thiết bị), giả sử chúng ta không cần thay đổi bất cứ điều gì trong cài đặt hệ thống và 2) câu hỏi ban đầu là về sao lưu, không thay đổi luksUUID tại chỗ (nhân tiện, luksUUID có thể được thay đổi mà không cần mã hóa lại khối lượng LUKS - sử dụng cryptsetup luksUUID )
dess

0

Để tạo lại tiền điện tử phân vùng với một UUID nhất định, gõ tương tự:

sudo cryptsetup luksFormat --verify-passphrase --uuid dec95850-23ad-4f54-b5c2-4f13ea48c571 /dev/sdb4

(để mã hóa / dev / sdb4 phân vùng với tiền điện tử ),

sudo cryptsetup open --type luks /dev/sdb4 sdb4_crypt

(mở luks chứa và đính kèm dưới dạng / dev / mapper / sdb4_crypt),

sudo mke2fs -v -t ext4 -U f65aa2cb-d7a3-4e45-858b-2b12a50e1b45 /dev/mapper/sdb4_crypt

(định dạng luks container như máy lẻ hệ thống tập tin và gán một UUID nhất định),

mount /dev/mapper/sdb4_crypt /media/<user>/f65aa2cb-d7a3-4e45-858b-2b12a50e1b45

(tăng thùng chứa theo một đường dẫn nhất định.)

Khi công việc kết thúc, chúng ta có thể ngắt kết nối container và đóng container:

sudo umount /media/<user>/f65aa2cb-d7a3-4e45-858b-2b12a50e1b45
sudo cryptsetup luksClose sdb4_crypt

Để tạo lại phân vùng trao đổi với một UUID đã cho:

sudo cryptsetup luksFormat --verify-passphrase --uuid e1baa59a-f24f-450c-a5a8-67f9d2f3338e /dev/sdc2
sudo cryptsetup open --type luks /dev/sdc2 sdc2_crypt
sudo mkswap -U 5313264e-6212-46f5-936d-f903eb2a2231 /dev/mapper/sdc2_crypt

Container có thể được đóng bằng lệnh:

cryptsetup luksClose sdc2_crypt
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.