부팅시 암호화 된 LVM 볼륨 (LUKS 장치)이 마운트되지 않는 이유는 무엇입니까?


15

이 안내서에 따라 암호화 된 볼륨을 설정하려고합니다

모든 것이 설정되었지만 부팅시 암호화 된 볼륨 마운트가 실패하고 오류가 발생합니다.

fsck.ext4 : / dev / mapper / safe_vault를 열려고 할 때 해당 파일이나 디렉토리가 존재하지 않을 수 있습니까?

이것은 내 설정입니다.

암호

$ sudo cat /etc/crypttab
safe_vault  /dev/disk/by-uuid/d266ae14-955e-4ee4-9612-326dd09a463b  none    luks

노트:

uuid출처 :

$ sudo blkid /dev/mapper/<my_logical_group>-safe_vault 
/dev/mapper/<my_logical_group>-safe_vault: UUID="d266ae14-955e-4ee4-9612-326dd09a463b" TYPE="crypto_LUKS" 

fstab

$ sudo cat /etc/fstab | grep safe_vault
/dev/mapper/safe_vault      /safe-vault     ext4    defaults    0 2

내가 한 것...

그래서 나는 devoper의 웹 사이트를 방문했고 Common Problems FAQ에서 그들은 말합니다 :

커널에 장치 매퍼와 암호화 대상이 있는지 확인하십시오. "dmsetup targets"의 출력에는 "crypt"대상이 나열되어야합니다. 존재하지 않거나 명령이 실패하면 장치 맵퍼 ​​및 crypt-target을 커널에 추가하십시오.

그래서 나는 crypt목표가 없다는 것이 밝혀졌습니다 .

$ sudo dmsetup targets
striped          v1.4.1
linear           v1.1.1
error            v1.0.1

문제는 그러한 대상을 추가하는 방법을 모른다는 것입니다.

이 ( crypt대상이 없음) crypttab부팅시 구성이 무시 될 수 있으므로 암호화 된 볼륨을에 매핑하지 않았 fstab으므로 항목을 마운트 cryptsetup하지 못했습니다 /dev/mapper/safe_vault.

노트:

암호화 된 볼륨을 수동으로 매핑, 마운트 및 기록 할 수 있습니다.

$ sudo cryptsetup luksOpen /dev/mapper/<my_logical_group>-safe_vault safe_vault
Enter passphrase for /dev/mapper/<my_logical_group>-safe_vault: 

$ sudo mount /dev/mapper/safe_vault /safe_vault

다음은 맵핑하고 마운트 한 후의 모습입니다.

$ sudo lsblk -o name,uuid,mountpoint
NAME                                  UUID                                   MOUNTPOINT
sda                                                                          
├─sda1                                28920b00-58d3-4941-889f-6249357c56ee   
├─sda2                                                                       
└─sda5                                uhBLE7-Kcfe-RMi6-wrlX-xgVh-JfAc-PiXmBe 
  ├─<my_logical_group>-root (dm-0)       1bed9027-3cf7-4f8d-abdb-28cf448fb426   /
  ├─<my_logical_group>-swap_1 (dm-1)     a40c16c4-7d0c-46d7-afc8-99ab173c20bb   [SWAP]
  ├─<my_logical_group>-home (dm-2)       e458abb7-b263-452d-8670-814fa737f464   /home
  ├─<my_logical_group>-other (dm-3)      0a1eec42-6534-46e1-8eab-793d6f8e1003   /other
  └─<my_logical_group>-safe_vault (dm-4) d266ae14-955e-4ee4-9612-326dd09a463b   
    └─safe_vault (dm-5)               9bbf9f47-8ad8-43d5-9c4c-dca033ba5925   /safe-vault
sr0  

최신 정보

  • 나는 crypt목표를 가지고 있지만 그것이 나타나기 dmsetup targets위해서는 먼저 해야한다고 밝혀졌습니다.cryptsetup luksOpen <my-device>
  • 내가 사용하려고했습니다 UUID@Mikhail Morfikov의에 따라 대신들 대답 하지만 여전히 부팅시 실패합니다.

여전히 문제는 어떻게 든 cryptsetup luksOpen부트 타임에 암호화 된 볼륨이 매핑 되지 않아 /dev/mapper/<safe_vault or UUID>존재 하지 않아 마운트 시도가 실패한다는 것입니다 (fstab).

업데이트 2

부팅시 마운트하는 데 필요한 스크립트가 없었습니다. @MikhailMorfikov의 답변에서 메모를 참조하십시오.


1
수동으로 수행 한 후에 암호화 대상이 표시 luksOpen됩니까? 그것이 없다면 luksOpen도 실패 할 것으로 예상됩니다.
CVn

좋아, 이후 sudo cryptsetup luksOpen이 개 새로운 목표에 대한 표시 sudo dmsetup targets: errorcrypt. 질문을 바꿔야한다고 생각합니다.
pgpb.padilla

파티션입니까 아니면 파일 컨테이너입니까?
Mikhail Morfikov

/dev/mapper/<my-logical-volume>-safe_vaultLVM으로 생성 된 논리 볼륨이며을 /dev/mapper/safe_vault수행하여 매핑되는 장치 cryptsetup luksOpen /dev/mapper/<my-logical-volume>-safe_vault입니다. crypttabLVM 볼륨과 작동 하는지 알고 있습니까?
pgpb.padilla

luks 파티션 내부에 lvm이 있으며 실제로 전체 1,5TB 디스크가 암호화되어 있습니다 (제외 /boot). 부팅 할 때 문제없이 모두 마운트되었습니다. initramfs편집 후 업데이트 /etc/crypttab하시겠습니까? lsblk -o name,uuid,mountpoint모든 것이 마운트되고 정상적으로 작동 할 때 의 결과를 보여줄 수 있습니까 ?
Mikhail Morfikov

답변:


16

UUID에주의를 기울여야합니다. 예를 들어, 이것은 내 구성입니다.

# lsblk -o name,uuid,mountpoint
├─sda2                         727fa348-8804-4773-ae3d-f3e176d12dac
│ └─sda2_crypt (dm-0)          P1kvJI-5iqv-s9gJ-8V2H-2EEO-q4aK-sx4aDi
│   ├─debian_crypt-swap (dm-1) 3f9f24d7-86d1-4e21-93e9-f3c181d05cf0   [SWAP]
│   ├─debian_crypt-tmp (dm-2)  93fc8219-f985-45fb-bd5c-2c7940a7512d   /tmp
│   ├─debian_crypt-home (dm-3) 12e8566c-8f0f-45ec-8524-6d9d9ee91eae   /home
│   └─debian_crypt-root (dm-4) 9685570b-4c9e-43ea-815e-49d10dc7a1bf   /

4 개의 볼륨 (LVM)을 가진 하나의 암호화 된 파티션 (sda2)이 있습니다. 필요한 것은 올바른 파일에 두 개의 UUID를 설정하는 것입니다. sda2 UUID로 이동 /etc/crypttab하고 볼륨 UUID (예 : debian_crypt-root)로 이동합니다 /etc/fstab.

따라서 다음과 같습니다.

# cat /etc/crypttab
sda2_crypt              UUID=727fa348-8804-4773-ae3d-f3e176d12dac   none        luks

# cat /etc/fstab
UUID=9685570b-4c9e-43ea-815e-49d10dc7a1bf       /               ext4    defaults,errors=remount-ro              0 1

/etc/crypttab파일을 변경 한 후 initramfs를 다시 빌드해야합니다.

# update-initramfs -u -k all

노트

cryptsetup부팅시 암호화 된 볼륨을 자동 마운트하는 기능을 지원하는 시작 스크립트가 있으므로 패키지 를 설치해야합니다.

왜 이것을 언급하는 것이 귀찮습니까? 설치 데비안 위지 중에 설치 LVM을 설치하는 경우 글쎄, 패키지는 -으로 cryptsetup 빈 , libcryptsetup4그리고 lvm2하지만 cryptsetup, 그래서 당신은 부팅시에 LUKS 장치를 장착 할 수있는 설정 LVM 및 LUKS 장치 도구가 아니라 스크립트 필요가있다. 이들은 cryptsetup 패키지에 들어 있습니다.


사용하려고 UUID했지만 동일한 오류가 발생합니다. 자세한 내용으로 질문을 업데이트하겠습니다.
pgpb.padilla

안녕하세요, 시간이 너무 길어 채팅 할 수 있습니까?
pgpb.padilla

또한 / etc / crypttab을 편집하지 않더라도 특정 암호화 설정을 변경하면 디스크가이를 편집하는 것처럼 보입니다. 이 답변은 디스크로 만든 실수를 수정하는 데 도움이되었습니다 (그리고 디스크를 취소하려고 할 때 더 많은 실수가있을 수 있습니다).
현자

0

@Mikhail Morfikov의 답변initramfs 단계 에서의 마운트를 다루는 것으로 보입니다 . 다른 방법 (루트 파일 시스템이 아닌 경우)은 linuz 커널이로드 된 후 systemd 를 통해 파티션을 자동으로 해독하고 마운트하는 것 입니다. 물론 이것은 systemd를 실행하는 경우에만 가능합니다 . 여기에 방법을 설명하겠습니다.

/etc/crypttab항목 :

crypt2 UUID=e412-blahblah /path/to/crypt2.key luks,noauto

다음 noautoinitramfs 단계 에서 디스크의 암호를 해독 하지 않도록 하는 지침 입니다.

e412-blahblah의 luks 시스템을 포함하는 파티션의 UUID, 내 경우에는 파티션입니다 /dev/sdb2.

# blkid | grep sdb2
/dev/sdb2: UUID="e41274d8-fd83-4632-b560-ad0ba113ae75" TYPE="crypto_LUKS" PARTUUID="5673a908-02"

linuz 커널 시작 중에 systemd/etc/crypttab파일 을 읽고 런타임 서비스 파일을 만듭니다 /run/systemd/generator/systemd-cryptsetup@crypt2.service. 그러나 해당 서비스는 자동으로 실행되지 않습니다. 수동으로 실행할 수 있습니다

systemctl start systemd-cryptsetup@crypt2.service

하지만이 암호를 해독 한 후 시작하는 동안 마운트 할 /etc/fstab수 있습니다 요구 다음과 같이를 :

/dev/mapper/crypt2--vg-data /media/crypt-data ext4 defaults,noauto,user,x-systemd.automount,x-systemd.requires=systemd-cryptsetup@crypt2.service 0 2

여기 x-systemd.automount하는 명령이다 systemd 탑재 /media/crypt-data하고 x-systemd.requires=systemd-cryptsetup@crypt2.service하라는 명령이다 systemd 의 해독 crypt2이 가능하기 전에 요구된다.

에서 systemd 실제로 예를 들어이 처음 액세스 시간까지 디렉토리를 마운트하지 않습니다 ls /media/crypt-data, 그것은 단지 인 타임 마운트 및에 그 후에 나타납니다 /proc/mounts.


관련

"* 루트 파일 시스템에 키가있는 암호화 된 데이터 디스크가있는 이유는 무엇입니까?" 루트 파일 시스템도 암호화되어 있기 때문에 키가 안전합니다. 루트 파일 시스템은 부팅 의 initramfs 단계에서 해독되며 , Mikhail의 답변입니다. /etc/crypttab파일에 다른 항목 이 있습니다.

crypt1 UUID=8cda-blahbalh none luks,discard,lvm=crypt1--vg-root

여기에 부팅 USB 설정과 부팅 USB 설정에 대해 설명합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.