暗号化されたホームを使用したクリーンな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

現時点での推測では、暗号化されたディスクをセットアップすると、Linuxはパーティションタイプを認識しなくなり、そのため適切にロードされず、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一部のコマンドについては確信が持てず、Ubuntuを台無しにしたくありません。

私が試したものと似ているように見えますが、1回の再起動で動作し、初めて暗号化されたスワップをアクティブにしたら再び動作を停止すると期待しています。
2014年

とりあえず、通常のスワップの使用に戻りました。私が暗号化を使用している主なシナリオは、誰かが私のラップトップを盗み、中程度の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

警告:これはラップトップではおそらく安全です(私はこのように使用します)が、スワップ可能なドライブを備えたデスクトップにいる場合、またはドライブ/パーティションレイアウトを変更する他の理由がある場合は、これを行いたくありません。通常のストレージパーティションが突然スワップに使用される場合があります。

注:起動時にのみ/dev/mapper/cryptswap1作成されるため、この変更を有効にするには再起動する必要があります。

適切な修正

これを修正する適切な方法は、を保存するrawパーティションの一部がUUID暗号化されたスワップデータによって上書きされないようにすることです。ただし、がどこにUUID書き込まれ、どのくらいのバイトを占有するかはわかりません。自己責任で、次のようにテストできます。

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

に注意してくださいoffset=36

Ubuntu Oneアカウントにログインしている場合は、LaunchpadのBug#1310058に移動し「このバグも私に影響します」を選択(またはここをクリック)してください。バグが「人気」になり、修正されやすくなります。


更新2014-10-27

私もこれにつまずいた。私は確認していません。offset壊れたスワップの再構築に関するより詳細なコメントとコメントがあるトリックのように見えます。

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


5
バグがbugs.launchpad.net/ubuntu/+source/ecryptfs-utils/+bug/953875で追跡されていることに注意したいのですが、数日前(2015年3月中旬)にステータスは「修正済みリリース」ですが、この修正は、15.04にのみ明示的に適用されます。私はそれが14.04 LTSにバックポートされていますかどうかを確認するために探しています...そして何「公式」更新手順があるかもしれない
トミーTrussellの

1
@TommyTrussell: LTSの場合、バックポートしないのはおかしいでしょう。このような重要な問題のバグは、リリースからほぼ1年後にまだ開いているため、大手のLinuxディストリビューションでさえOSXやWindowsに匹敵することはありません。残念ながら。
レッサンドロ

バグはOSXとWindowsで修正されているため、パブリックディスカッションについては知りません。私のOSXの経験では、バグは修正されているかどうかはわかりません。公開討議がないため、「不透明」です。参照を更新できるように、リンクした番号が重複としてマークされていたため、新しいバグ番号に言及しただけです。Bug 953875で言及されているフォーラム投稿の議論からわかるように、最も安定した修正は、15.04で変更されるinitシステムによって異なる場合があります。そのため、14.04修正には、前方互換性に関する技術的な課題がある場合があります。
トミートラセル

WindowsやOSXのようなシステムでは、「ああ、ところでSWAPが壊れている」というようなものを見ることは決してないと言っているだけです。これは、テストおよび修正される前にRTMを取得することのないコア機能の一種です。それで全部です。セキュリティに関しては、公開討論はありませんが、統計はまだあります
レッサンドロ

@Redsandroまあ、それは無料のオペレーティングシステムであり、このようなものは、リリースをテストするときにバグを発見した場合にのみ、リリース前に修正されます。リリース後、バグ修正を行うと誰かの設定に何か他のものが壊れるのはあまりにも危険です。ただし、最近のリリースでは修正される可能性があるため、使用する価値があるかもしれませんが、一般的な更新に重点が置かれているため、中間リリースは通常LTSリリースよりも不安定です。しかし、バグテスト/修正/品質保証(QA)が非常に重要であり、Ubuntuがそれで良くなっている理由を特定しました。
Ads20000

9

Ubuntu 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
これは、適切な簡単に修正!
セルジュStroobandt

7

暗号化されていないスワップを使用するだけです

...そして/ homeを暗号化しておく

ここで提案されている他のソリューションをいくつか試しました。ホットリブート後も機能し続けましたが、最終的にはシャットダウンとコールドリスタート後にすべて失敗しました。

これは、実際に二重のバグに対処していることを示しています。

  1. スワップドライブのUUIDは暗号化システムによって上書きされます。
  2. 起動中にタイムアウトの問題があります。

これらの考えは、Launchpadに提出された関連バグへのコメントにも反映されています。ただし、Upstartからsystemdへの保留中の移行では、現在のLTSシステムのバグを解決するための作業はほとんど行われていません。

この時点で、次の考えが思い浮かびました。

  1. システムのインストール中、私は自分の\homeパーティションのみを暗号化するように頼みました。
  2. 暗号化されたスワップパーティションを持たないことに伴うリスクはかなり限られています。
  3. 彼らの行為を片付けるのはCanonical次第です。これでもう時間を無駄にしません。

そこで、オペレーティングシステム全体を再インストールせずに、通常の暗号化されていないスワップとしてスワップ復元するための私のソリューションを次に示します。

  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では、スワップパーティションにブートフラグがあります。これでも動作しますか、それとも起動できなくなりますか?
クリスチャンスクヨート

@ChristianSkjødtスワップパーティションにブートフラグを設定しないでください。とにかく、上記の手順はそのいずれにも影響しません。
セルジュStroobandt

2

見ていこれを。/ etc / crypttabでUUID = ...を/ dev / sda3に置き換えるだけでこの問題を修正しました。


1
まず「sudo fdisk -l」を実行して、スワップパーティションの名前を確認します。これは「/ etc / sda5」などであり、ミュータントの説明に従ってcryptabを編集します。これは私のために働き、再起動後も生き残ります。新しいSSDに新規インストールするとこの問題が発生したため、これは間違いなくバグです。特に、以前のインストールから古い/ homeからファイルをコピーする場合は、インストール後に「ホームディレクトリを暗号化する」オプションを選択しました。
ポールウィリアムズ14年

これsudo fdisk -lは誰も話していないことでした。これをありがとう!:)
アマンアラム14

少なくとも/dev/sd*気まぐれにパスが変更され、スワップデータによって間違ったパーティションが破壊される可能性があることを人々に警告する必要があります。/dev/disk/by-id優れています。
underscore_d

0

私はこの問題を抱えています。問題の人々332625もそうでした。サスペンドとリブートの組み合わせによってスワップパーティションのUUIDが失われるため(/ etc / fstabのコメントに記載されているとおり、これをで確認してくださいsudo blkd)、暗号化されたスワップとしてそのUUIDを使用する/ etc / crypttabの行は失敗します。

消失するUUIDの代わりにパーティションの名前(あなたの場合は/ dev / sda6)または名前を使用するように/ etc / crypttabを切り替える運はありません。/devdev/disk/by-id/

悲しいことに、暗号化されたスワップを放棄するのが最も簡単で、これまでのところ最高のソリューションです。


この問題は非常に古いので、なぜ彼らはまだそれを修正しなかったのでしょうか、今はデスクトップで同じ問題に直面しており、実行できず、過去にラップトップで修正しましたが、どのように覚えていないか:(
トマス14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.