암호화 된 홈을 사용하여 클린 14.04 설치에서 스왑이 작동하지 않음


28

업데이트 3 :

업그레이드 후에도 다른 문제가 발생했기 때문에 시스템을 처음부터 다시 설치하기로 결정했습니다. 그러나이 문제는 지속되었습니다.

새로 설치시 "암호화 된 홈"을 사용하여 설치하도록 선택하면 암호화 된 스왑 구성이 손상됩니다.

업데이트 2 :

cfdisk가 불만을 제기 한 분할 순서를 수정했지만 문제가 지속됩니다. 스왑은 이제 / dev / sda6에 있으며 다음과 같이 스왑을 실행할 수 있습니다.

~$ sudo mkswap /dev/sda6
Setting up swapspace version 1, size = 7998460 KiB
no label, UUID=18881d0f-d9ec-43be-a23f-0cbd78ea6d22

$sudo nano /etc/crypttab # Update crypttad with new UUID

$ sudo /etc/init.d/cryptdisks reload
 * Stopping remaining crypto disks...
 * cryptswap1 (stopped)...                                               [ OK ] 
 * Starting remaining crypto disks...                                        
 * cryptswap1 (starting)..
 * cryptswap1 (started)...                                               [ OK ] 
$ sudo swapon -a

$ls -l /dev/disk/by-uuid/
total 0
lrwxrwxrwx 1 root root 10 May 11 09:04 08b07f88-6da5-4b40-b062-42b3bb1c5f00 -> ../../sda3
lrwxrwxrwx 1 root root 10 May 11 09:08 18881d0f-d9ec-43be-a23f-0cbd78ea6d22 -> ../../sda6
lrwxrwxrwx 1 root root 10 May 11 09:04 19aa372c-05c8-4226-8f09-c54e5566e816 -> ../../sda5
lrwxrwxrwx 1 root root 10 May 11 09:04 A800B16E00B143DA -> ../../sda1
lrwxrwxrwx 1 root root 10 May 11 09:04 D28230E68230D129 -> ../../sda2
lrwxrwxrwx 1 root root 10 May 11 09:08 fcc8c419-8fec-4d4d-b55e-9e4c3b04d21d -> ../../dm-0

그러나 재부팅 후 스왑이 활성화되지 않고 다시 한 번 다음과 같이 보입니다.

$ ls -l /dev/disk/by-uuid/
total 0
lrwxrwxrwx 1 root root 10 May 11 09:12 08b07f88-6da5-4b40-b062-42b3bb1c5f00 -> ../../sda3
lrwxrwxrwx 1 root root 10 May 11 09:12 19aa372c-05c8-4226-8f09-c54e5566e816 -> ../../sda5
lrwxrwxrwx 1 root root 10 May 11 09:12 A800B16E00B143DA -> ../../sda1
lrwxrwxrwx 1 root root 10 May 11 09:12 D28230E68230D129 -> ../../sda2

현재 디스크를 암호화로 설정하면 리눅스가 파티션 유형을 더 이상 인식하지 못하기 때문에 디스크를 올바르게로드하지 않아 UUID에 등록하지 못하므로 cryptswap에서 디스크를 찾을 수 없습니다. 그러나 나는 그것을 고치는 방법을 모른다 ..

업데이트 된 질문 :

추가 테스트 결과 $ mkswap / dev / sda5를 실행하여 스왑을 시작하고 실행할 수있는 것으로 나타났습니다.

그런 다음 올바른 UUID로 / etc / crypttab을 업데이트하고 여기에 설명 된 단계를 따릅니다. 암호화 된 스왑 파일을 어떻게 설정합니까?

그러나 컴퓨터를 재부팅 할 때 문제가 남아 있으며 실행할 때 / dev / sda5가 나타나지 않습니다.

$ ls -l /dev/disk/by-uuid/

만약 내가한다면:

$ cfdisk /dev/sda 

다음과 같은 오류가 발생합니다.

FATAL ERROR: Bad logical partition 6: enlarged logical partitions overlap
                      Press any key to exit cfdisk

그래픽 "디스크"유틸리티는 디스크를 사용하여 디스크를 열 때 발생하는 오류에 대해 불평하지 않습니다.

$ sudo fdisk -l

Disk /dev/sda: 256.1 GB, 256060514304 bytes
255 heads, 63 sectors/track, 31130 cylinders, total 500118192 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x619aebf1

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      206847      102400    7  HPFS/NTFS/exFAT
/dev/sda2          206848   100870143    50331648    7  HPFS/NTFS/exFAT
/dev/sda3       191397888   192397311      499712   83  Linux
/dev/sda4       192399358   500117503   153859073    5  Extended
/dev/sda5       484118528   500117503     7999488   82  Linux swap / Solaris
/dev/sda6       192399360   484118527   145859584   83  Linux

Partition table entries are not in disk order

원래 질문 :

14.04 (13.04에서)로 업그레이드 한 후 컴퓨터가 심각한 속도 저하를 겪고 있습니다. 또한 스왑 공간이 없다는 것을 알았습니다!

$ sudo swapon -a
swapon: /dev/mapper/cryptswap1: stat failed: No such file or directory

암호화 된 스왑 설정에 문제가있는 것 같습니다 (내가 가지고 있음을 몰랐 음).

$ cat /etc/crypttab 
cryptswap1 UUID=abe3c568-c8fd-4dfb-b8e9-0520d442dd61 /dev/urandom swap,cipher=aes-cbc-essiv:sha256

$ ls -l /dev/disk/by-uuid/
total 0
lrwxrwxrwx 1 root root 10 May  6 11:00 08b07f88-6da5-4b40-b062-42b3bb1c5f00 -> ../../sda3
lrwxrwxrwx 1 root root 10 May  6 11:00 19aa372c-05c8-4226-8f09-c54e5566e816 -> ../../sda6
lrwxrwxrwx 1 root root 10 May  6 11:00 A800B16E00B143DA -> ../../sda1
lrwxrwxrwx 1 root root 10 May  6 11:00 D28230E68230D129 -> ../../sda2

그리고 내 fstab을보고

$ cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda6 during installation
UUID=19aa372c-05c8-4226-8f09-c54e5566e816 /               ext4    errors=remount-ro 0       1
# /boot was on /dev/sda3 during installation
UUID=08b07f88-6da5-4b40-b062-42b3bb1c5f00 /boot           ext2    defaults        0       2
# swap was on /dev/sda5 during installation
#UUID=abe3c568-c8fd-4dfb-b8e9-0520d442dd61 none            swap    sw              0       0
/dev/mapper/cryptswap1 none swap sw 0 0

내 생각에 sda5의 설정에 문제가 있지만 암호화되도록 설정되어 있으므로 수정 방법을 모르겠습니다. 진행하는 방법에 대한 도움을 주시면 감사하겠습니다.


암호화 된 파티션에 대해서는 아무것도 모르지만 첫 번째 오류는 스왑 파티션이 마운트되지 않았 음을 나타냅니다. 또한 / etc / fstab에 장착 라인이 주석 처리되어 있습니다. 그 줄을 주석 해제하고 다시 시작하여 문제가 해결되는지 확인하려고합니다.
Anake

나는 그것이 주석 처리되어야한다고 확신하고 cryptswap1 라인은 / etc / crypttab의 정보를 사용하여 간접적으로 마운트 할 책임이 있습니다. 당신의 제안은 반드시 암호화되지 않은 방식으로 마운트 할 것입니까?
ajn

1
이것이 효과가 있습니까? https://ubuntuforums.org/showthread.php?t=2224129 일부 명령에 대해 확신이 없으며 우분투를 망치고 싶지 않습니다.

내가 시도한 것과 비슷해 보였습니다. 다시 한 번 재부팅 한 다음 처음으로 암호화 된 스왑을 활성화하면 다시 작동하지 않을 것으로 기대합니다.
ajn

현재 정규 스왑 사용으로 돌아 왔습니다. 내가 암호화를 사용하는 주요 시나리오는 누군가 내 랩톱을 훔치고 적당한 Linux 기술을 가진 누군가가 흥미로운 것을 찾을 수 있는지 확인하기로 결정한 경우입니다. 나는 누군가가 스왑에서 그 조각을 복구하려고 시도하기에 충분히 가치가 있다고 생각하는 것을 가지고 있지 않습니다. 암호화 된 홈 + 정기 스왑을 사용하려면 실제로 설치 옵션이어야합니다.
ajn

답변:


16

알려진 버그

UUID파티션에 데이터를 쓰 자마자 파티션 을 덮어 쓰는 버그 (아래 참조)가 있습니다. 따라서 UUID를 사용하여 암호화 된 스왑에 사용할 파티션을 참조 할 수 없습니다 .

요즘 스왑 공간은 거의 사용되지 않습니다. 내 컴퓨터에서 스왑은 40 번째 탭을 열 때만 사용됩니다. 스왑이 없으면 갑자기 컴퓨터가 느려지기 시작하고 브라우저가 닫힙니다. 또는 Chromium브라우저 의 경우 많은 탭이 갑자기 '사라집니다'.
이러한 이유로, 참조 /dev/disk/by-uuid/당신의 /etc/crypttab힘은 같다 잠시 동안 작동하는, 그러나 즉시 스왑 공간이 실제로 사용되는, 그것은을 덮어 쓰게됩니다 UUID전체 파티션을 암호화 된 데이터 저장을 위해 사용되기 때문이다.

쉬운 수정

쉬운 해결책은 다음 /etc/crypttab과 같은 장치에서 스왑 파티션을 참조하는 것입니다 .

cryptswap1 /dev/sda5 /dev/urandom swap,cipher=aes-cbc-essiv:sha256

경고 : 이은 아마 노트북 (I는 다음과 같이 사용)에 안전하지만 스왑 드라이브와 바탕 화면 또는 드라이브 / 파티션 레이아웃을 변경하는 다른 이유가있는 경우, 당신은,이 싶지 않아 일반 스토리지 파티션이 갑자기 스왑에 사용될 수 있습니다.

참고 : 부팅이 /dev/mapper/cryptswap1생성 될 때만이 변경 사항을 적용하려면 재부팅해야합니다 .

적절한 수정

이 문제를 해결하는 올바른 방법은을 저장하는 원시 파티션의 일부 UUID가 암호화 된 스왑 데이터로 덮어 쓰지 않도록함으로써 재부팅시에도 그대로 유지하는 것입니다. 그러나 UUID작성 위치와 차지하는 바이트 수를 잘 모르겠습니다 . 자신의 위험에 따라 다음과 같이 테스트 할 수 있습니다.

cryptswap1 UUID=abe3c568-c8fd-4dfb-b8e9-0520d442dd61 /dev/urandom swap,offset=36,cipher=aes-cbc-essiv:sha256

를 참고하십시오 offset=36.

당신은 제발 경우 우분투 하나 의 계정 로그 및 이동 런치 패드에 버그 # 1310058 를 선택 (또는 여기를 클릭) : "이 버그가 너무 나에 영향을 미치는" 버그가 '인기'를 얻을 수 있도록 고정하기가 더 쉽습니다.


2014-10-27 업데이트

나는 또한 이것을 우연히 발견했다. 본인이 확인하지 않았습니다. offset깨진 스왑을 재구성하는 것에 대한 자세한 설명과 의견이있는 트릭 처럼 보입니다 .

https://bugs.launchpad.net/ubuntu/+source/ecryptfs-utils/+bug/1310058/comments/22


5
방금 며칠 전 (2015 년 3 월 중순) 현재 bugs.launchpad.net/ubuntu/+source/ecryptfs-utils/+bug/953875 에서 버그가 추적되고 있음을 알고 싶습니다 . 이 수정은 15.04에만 명시 적으로 적용됩니다. 14.04 LTS로 백 포트되는지 여부와 "공식적인"업데이트 절차가 무엇인지 확인하려고합니다.
Tommy Trussell

1
@TommyTrussell : 백 포트하지 않는 것은 LTS에게 미친 것입니다. 이와 같은 중요한 것들에 대한 버그는 출시 후 거의 1 년이 지나도 여전히 열려 있기 때문에 큰 리눅스 배포판조차도 OSX 및 Windows와 절대 호환되지 않습니다. 운수 나쁘게.
Redsandro

OSX 및 Windows에서 수정 된 버그에 대한 공개 토론에 대해 잘 모릅니다. 어떻게 "정상"상태가 될 수 있습니까? OSX에 대한 경험에서 버그는 수정되거나 수정되지 않습니다. 공개 토론이 없으므로 "불투명"합니다. 참조한 내용을 업데이트 할 수 있도록 새 버그 번호를 언급했습니다 (링크 된 번호가 중복으로 표시 되었기 때문에). 버그 953875에서 언급 한 포럼 게시물에서 토론에서 볼 수 있듯이 가장 안정적인 수정은 init 시스템에 따라 15.04에서 변경 될 수 있습니다. 따라서 14.04 수정 프로그램은 호환성을 위해 기술적 인 문제가있을 수 있습니다.
Tommy Trussell

나는 단지 Windows 나 OSX와 같은 시스템에서 "아, SWAP가 망가졌다"는 것을 결코 보지 못할 것이라고 말하고 있습니다 . 이것은 테스트 및 수정 전에 RTM 얻지 못하는 핵심 기능입니다 . 그게 다야. 보안에 관해서는 공개 토론은 없지만 여전히 통계가 있습니다.
Redsandro

@ Redsandro 글쎄, 그것은 무료 운영 체제이며 릴리스를 테스트 할 때 사람들이 버그를 발견하면 릴리스 전에 만 수정됩니다. 릴리스 후에는 버그 수정으로 인해 누군가의 구성에서 다른 부분이 깨질 수 있습니다. 그러나 최신 릴리스에서는 수정 될 수 있으므로 사용하는 것이 좋습니다. 그러나 중간 릴리스는 일반적으로 LTS 릴리스보다 불안정합니다. 일반적인 업데이트에 중점을 둡니다. 그러나 버그 테스트 / 수정 / 품질 보증 (QA)이 왜 그렇게 중요하며 우분투가 그 점에서 나아지고 있는지를 확인했습니다.
Ads20000

9

우분투 14.04에서 똑같은 문제가 발생 하여이 스레드를 발견했습니다. 돌연변이가 제공 한이 링크 는 저에게 효과적이었습니다. /dev/disk/by-id참조가 항상 동일한 물리 분할을 가리키는 것은 아니기 때문에 / dev / sdXY 대신 참조를 사용했습니다 . 내 결과 /etc/crypttab는 다음과 같습니다.

cryptswap1 /dev/disk/by-id/wwn-0x500...-part6 /dev/urandom swap, cipher=aes-cbc-essiv:sha256

3
이것은 적절 하고 쉬운 수정입니다!
Sroo Stroobandt

7

암호화되지 않은 스왑을 사용하십시오

... / home 암호화 유지

여기에 제안 된 다른 솔루션 몇 가지를 시도했습니다. 핫 재부팅 후에도 계속 작동했지만 결국 종료 및 콜드 재시작 후 모두 실패했습니다.

이것은 실제로 이중 버그를 다루고 있음을 알려줍니다.

  1. 스왑 드라이브의 UUID는 암호화 시스템에 의해 재정의됩니다.
  2. 부팅하는 동안 시간 초과 문제가 있습니다.

이러한 생각은 Launchpad에 제출 된 관련 버그 에 대한 의견에도 반영됩니다 . 그러나 Upstart에서 systemd로 보류중인 이동으로 현재 LTS 시스템의 버그를 해결하기위한 작업은 거의 없습니다.

이 시점에서 다음과 같은 생각이 떠 올랐습니다.

  1. 시스템을 설치하는 동안 \home파티션을 암호화하기 만하면됩니다.
  2. 암호화 된 스왑 파티션이없는 것과 관련된 위험은 다소 제한적입니다.
  3. 그들의 행동을 정리하는 것은 정식입니다. 더 이상 시간을 낭비하지 않을 것입니다.

따라서 전체 운영 체제를 다시 설치하지 않고 스왑을 일반적인 암호화되지 않은 스왑으로 복원하는 솔루션이 있습니다.

  1. 아직 설치하지 않은 경우 다음을 설치하십시오 blkid.$ sudo apt-get install blkid
  2. /etc/crypttab전체 cryptswap1줄을 편집 하고 삭제하십시오 .$ sudo nano /etc/crypttab
  3. 시스템 설정 메뉴에서 GParted를 시작하십시오.
  4. 느낌표가있는 파티션이 표시됩니다. 이것은 잘못된 스왑 파티션이어야합니다. 신중하게 선택하고 linux-swap파티션으로 다시 포맷하십시오 . 이 작업을 적용하면 복원 된 일반 스왑 파티션의 새 UUID에 대한 정보가 제공됩니다. 이 정보를 저장할 기회가 제공됩니다. 그렇지 않으면 다음을 사용하여 항상 명령 행에서 새 UUID를 검색 할 수 있습니다 blkid.$ sudo blkid
  5. 이제 /etc/fstab옛 영광 으로 회복 할 때입니다.$ sudo nano /etc/fstab

    • 에 대한 참조가 포함 된 전체 줄을 제거하십시오 /dev/mapper/cryptswap1.
    • 앞에 swap있는 해시 #를 제거 하여 이전 행의 주석 을 해제하십시오 UUID=....
    • 이제 이전 UUID를 이전에 얻은 새 UUID로 바꾸십시오.
    • 타격하여 파일을 쓰기 Ctrl+ O 및 종료 nanoCtrl+ X.
  6. 이 모든 작업을 완료하면 다음과 같이 새로운 암호화되지 않은 스왑을 이미 사용할 수 있습니다. $ sudo swapon -a
  7. 이 솔루션은 핫 재부팅 및 콜드 재시작으로 종료됩니다.

1
나는 다른 모든 것을 시도했지만 이것이 나를 위해 일한 유일한 대답입니다.
fifaltra

gparted에서 스왑 파티션에는 부팅 플래그가 있습니다. 그래도 작동합니까, 아니면 부팅 할 수없는 상태입니까?
Christian Skjødt

@ ChristianSkjødt 스왑 파티션은 부팅 플래그를 설정하지 않아야합니다. 어쨌든, 위의 절차는 그에 영향을 미치지 않습니다.
Sroo Stroobandt

2

이것 좀 봐 . / etc / crypttab에서 UUID = ...를 / dev / sda3으로 간단히 바꾸어이 문제를 해결했습니다.


1
"sudo fdisk -l"을 먼저 실행하여 스왑 파티션이 무엇인지 확인하십시오. "/ etc / sda5"또는 기타 일 수 있습니다. 그런 다음 돌연변이에 의해 설명 된대로 cryptab를 편집하십시오. 이것은 나를 위해 일했고 재부팅 후에도 살아 남았습니다. 새로운 SSD에 새로 설치하면이 문제가 발생하므로 이것은 분명히 버그입니다. 설치시 "홈 디렉토리 암호화"옵션을 선택했습니다. 특히 이전 설치의 이전 / home 파일을 복사하는 경우 설치 후 / home을 암호화하는 것이 좋습니다.
Paul Williams

sudo fdisk -l뭔가 아무도 이야기하지 않았다이었다. 감사합니다! :)
Aman Alam

최소한 사람들에게 /dev/sd*경로가 변덕스럽게 변하고 스왑 데이터로 인해 잘못된 파티션이 손상 될 수 있음을 경고해야 합니다. /dev/disk/by-id우수합니다.
underscore_d

0

문제의 사람들이 332625 처럼이 문제가 있습니다 . 일시 중지와 재부팅의 일부 조합은 스왑 파티션의 UUID를 잃어 버립니다 ( / etc / fstab 의 주석에서 확인 sudo blkd하십시오). / etc / crypttab 의 행은 암호화 된 스왑이 실패 할 때 해당 UUID를 사용합니다.

파티션 이름 ( 귀하의 경우 / dev / sda6 ) 또는 사라지는 UUID 대신 이름 을 사용하도록 / etc / crypttab 을 전환하는 것이 운이 없습니다 ./devdev/disk/by-id/

슬프게도 가장 쉬운 솔루션은 암호화 된 스왑을 포기하는 것입니다.


이 문제는 매우 오래되었습니다. 왜 이미 문제가 해결되지 않았는지 궁금합니다. 이제 데스크탑과 동일한 문제가 발생하여 실행할 수 없으며 과거에 랩톱에서 수정했지만 방법을 기억할 수 없습니다. (
tomasb
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.