/dev/mapper/cryptswap1 ...
にある/etc/fstab
の行がそれだと思います。次のブート時にメッセージを受け取ったので、私はスワップを混乱させるために何かをしました(言い換え):
/ dev/mapper/cryptswap1のディスクドライブはまだ準備ができていないか、存在しません。続行するのを待ちます。 Sを押してスキップするか、Mを押して手動で回復します。
(補足として、 S または M 待っているだけと何も変わらないように見えた。)
私が試したものは次のとおりです。
mkswap
コマンドは失敗します。/etc/initramfs-tools/conf.d/resume
と/etc/fstab
を調整しました。それでもうまくいきませんでした。 /dev/mapper/cryptswap1
が存在しない代わりに、「UUID =[スワップパーティションのUUID]のディスクドライブはまだ準備ができていないか、存在しません...」/etc/fstab
のスワップエントリとcryptswapエントリを削除し、/etc/initramfs-tools/conf.d/resume
と/etc/crypttab
を削除しました。この時点では、スワップパーティションやマウントするための指示がないため、メインシステムが壊れているとは見なされません。起動時にエラーは発生しませんでした。スワップ用のパーティションの作成から始めて、同じ手順に従ってスワップパーティションを作成および暗号化しましたが、fdisk
は変更を確認するには再起動が必要だと思います。上記の3番目のプロセスは機能すると確信していましたが、問題は解決しません。
関連情報(/dev/sda8
はスワップパーティション):
/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>
proc /proc proc nodev,noexec,nosuid 0 0
# / was on /dev/sda6 during installation
UUID=4c11e82c-5fe9-49d5-92d9-cdaa6865c991 / ext4 errors=remount-ro 0 1
# /boot was on /dev/sda5 during installation
UUID=4031413e-e89f-49a9-b54c-e887286bb15e /boot ext4 defaults 0 2
# /home was on /dev/sda7 during installation
UUID=d5bbfc6f-482a-464e-9f26-fd213230ae84 /home ext4 defaults 0 2
# swap was on /dev/sda8 during installation
UUID=5da2c720-8787-4332-9317-7d96cf1e9b80 none swap sw 0 0
/dev/mapper/cryptswap1 none swap sw 0 0
Sudo mount
の出力:
/dev/sda6 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/Fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
/dev/sda5 on /boot type ext4 (rw)
/dev/sda7 on /home type ext4 (rw)
/home/undisclosed/.Private on /home/undisclosed type ecryptfs (ecryptfs_check_dev_ruid,ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_unlink_sigs,ecryptfs_sig=cbae1771abd34009,ecryptfs_fnek_sig=7cefe2f59aab8e58)
gvfs-Fuse-daemon on /home/undisclosed/.gvfs type Fuse.gvfs-Fuse-daemon (rw,nosuid,nodev,user=undisclosed)
Sudo blkid
の出力(/dev/sda8
が欠落していることに注意してください):
/dev/sda1: LABEL="SYSTEM" UUID="960490E80490CC9D" TYPE="ntfs"
/dev/sda2: UUID="D4043140043126C0" TYPE="ntfs"
/dev/sda3: LABEL="Shared" UUID="80F613E1F613D5EE" TYPE="ntfs"
/dev/sda5: UUID="4031413e-e89f-49a9-b54c-e887286bb15e" TYPE="ext4"
/dev/sda6: UUID="4c11e82c-5fe9-49d5-92d9-cdaa6865c991" TYPE="ext4"
/dev/sda7: UUID="d5bbfc6f-482a-464e-9f26-fd213230ae84" TYPE="ext4"
/dev/mapper/cryptswap1: UUID="41fa147a-3e2c-4e61-b29b-3f240fffbba0" TYPE="swap"
Sudo fdisk -l
の出力:
Disk /dev/mapper/cryptswap1 doesn't contain a valid partition table
Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders, total 625142448 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: 0xdec3fed2
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 409599 203776 7 HPFS/NTFS/exFAT
/dev/sda2 409600 210135039 104862720 7 HPFS/NTFS/exFAT
/dev/sda3 210135040 415422463 102643712 7 HPFS/NTFS/exFAT
/dev/sda4 415424510 625141759 104858625 5 Extended
/dev/sda5 415424512 415922175 248832 83 Linux
/dev/sda6 415924224 515921919 49998848 83 Linux
/dev/sda7 515923968 621389823 52732928 83 Linux
/dev/sda8 621391872 625141759 1874944 82 Linux swap / Solaris
Disk /dev/mapper/cryptswap1: 1919 MB, 1919942656 bytes
255 heads, 63 sectors/track, 233 cylinders, total 3749888 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: 0xaf5321b5
/etc/initramfs-tools/conf.d/resume
ファイル:
RESUME=UUID=5da2c720-8787-4332-9317-7d96cf1e9b80
/etc/crypttab
ファイル:
cryptswap1 /dev/sda8 /dev/urandom swap,cipher=aes-cbc-essiv:sha256
Sudo swapon -as
の出力:
Filename Type Size Used Priority
/dev/mapper/cryptswap1 partition 1874940 0 -1
Sudo free -m
の出力:
total used free shared buffers cached
Mem: 1476 1296 179 0 35 671
-/+ buffers/cache: 590 886
Swap: 1830 0 1830
それで、これはどのように修正できますか?
暗号化されたスワップパーティションを使用する場合、同じ問題が発生しました。一般的な Swap FAQ 、 「cryptswap1がまだ準備できていない、または存在しない」メッセージに対するPuny Geekのソリューション または Braiamの答え to この質問 私のために問題を解決しました-時々スワップが利用可能でした、時々利用できませんでした。多くの再起動といくつかの突進の後、私は根本的な理由を見つけたと思います:
/dev/sda3
のようなスワップパーティションへのパスは異なる場合があります。 /dev/sdb3
。ファイル/etc/crypttab
はデフォルトでこのパスを介してスワップパーティションを識別するように見えるため、(ブート時にそのパーティションが偶然同じパスを取得する場合)見つからない場合があります(パーティションに異なるパスが割り当てられている場合)ブート)。
私がその問題を抱えているのは私だけではなかったようです ここで説明しているため 、より良い解決策は、/dev/sd*
パスではなくドライブIDを介してスワップパーティションをバインドすることです。これは次を実行することで見つけることができます
ls -l /dev/disk/by-id/
これは、スワップを含むすべてのパーティションのディスクIDをリストします。これは、私の場合は
ata-Toshiba_MQ01UBD100_73JATD5GT-part3 -> ../../sdb3
ディスクユーティリティなどのプログラムで、この行の-> ../../sdb*
部分が実際にスワッピングに使用する予定のパーティションであることを再確認します。これは(前に言ったように)名前を変更することがあるためです。いつものように、これに留意してください:
注意:cryptsetupとディスクデバイスをいじるのは、データとOSにとって危険です。個人的に完全なバックアップを別のディスクに作成し、それをアンプラグして、事故に巻き込まれないようにしました。
次に、「生」パスの代わりにIDリンクを使用して/etc/crypttab
ファイルを編集します。私の場合、この行は
cryptswap1 /dev/disk/by-id/ata-Toshiba_MQ01UBD100_73JATD5GT-part3 /dev/urandom swap,cipher=aes-cbc-essiv:sha256
明らかに/dev/sd*
パスがわからないため、この方法は新規インストールのデフォルトにすべきだと思います...スクリプトやソフトウェアがもっとたくさんあると感じているので、少し心配しています。これらのパス(ID、ラベル、またはUUIDではなく)に依存して、再起動後も同じままになります。
TODO:
このページで述べられているように、これはUUID(私のスワップパーティションにはない)に依存しているように見えるため、休止状態からの再開がこのセットアップでまだ機能するかどうかは確認していません: https:// altinukshini .wordpress.com/2012/10/15/devmappercryptswap1-is-not-ready-yet-or-not-present /
更新:
これまでのところ、休止状態は正常に機能しているようです。これが他の人にとってもこれらの問題を解決することを願っています!
/etc/crypttab
にこれがあるはずです:
cryptswap1 /dev/sda4 /dev/urandom swap,cipher=aes-cbc-essiv:sha256
/etc/fstab
の最後のこの行
/dev/mapper/cryptswap1 none swap sw 0 0
Crypttabファイルでuuidを使用しないでください。
次に、トリックを使用して、再起動またはシャットダウンする直前にスワップの動作を正規化します。
この中に/etc/init.d/cryptswap.sh
スクリプトを作成します:
#!/bin/bash
/etc/init.d/cryptdisks-early restart
実行可能にする:
Sudo chmod +x /etc/init.d/cryptswap.sh
適切に処理するために、リンクと番号を使用して、再起動またはシャットダウンのいずれかの適切なタイミングで実行できるようにします。
cd /etc/rc6.d
Sudo ln -s ../init.d/cryptswap.sh S10cryptswap.sh
cd /etc/rc0.d
Sudo ln -s ../init.d/cryptswap.sh S10cryptswap.sh
ここで重要なのは、名前の10番です。これは、スワップを取り始めるS40の前にスクリプトを実行する必要があるためです。さらに後で、別のスクリプトが暗号化されたデバイスを削除します。ポイントは、元のシーケンスが失敗することであり、スムーズに実行するには再起動が必要です。
それでおしまい!
注:これは汚いハックであり、再起動では時々起こっていることを修正できない場合があります。スワップおよび/またはcryptsetupの両方を担当する開発者の誰かが深く調べ、サスペンド後、スワップがswapoff /dev/mapper/cryptswap1
および/etc/init.d/cryptdisks-early stop
を失敗させる状態のままになる理由を確認する必要があります。これらのコマンドを実行すると、swapoffがswapfileのヘッダーについて文句を言うのがわかります。また、cryptdisks-early
を停止しようとすると、/dev/mapper/cryptswap1
が「失敗」を送信していることがわかります。
最初は、彼の問題はlibblkによるカーネルの動作に関係していると思いました。これはおそらくバグ(意図しない)です。問題は、異なる「ファイルシステム」によって編集されたパーティションテーブルを持っているようです。カーネルは、パーティションテーブルを編集しているファイルシステムのいくつかの署名を検出するため、/dev/disk/by-uuid/
の入力を拒否します。これは、スクリプト/usr/bin/ecryptfs-setup-swap
がUUIDを使用して/etc/crypttab
用に作成したエントリを参照することを考えると重要に思えます。
修正方法は、いくつかのライブメディアで起動することにより、同じファイルシステムからすべてのパーティションを再作成することです。参照: http://forums.fedoraforum.org/showthread.php?t=28889
ただし、ecryptfs/crypttabはブートのたびにスワップパーティションを「再フォーマット」するため、これは機能しません。 ecryptfs-setup-swapを実行して再起動すると、スワップパーティションのuuidが表示されなくなります。これは、他の回答に記載されているように、起動時にuuidによって参照されている場合、crypttabによってパーティションが検出されないことを意味します。
さらに、可能性のある修正は、uuidの使用をあきらめて、/ etc/crypttabでそれらを別の表記で置き換えることでした。/dev/sdXXのみが機能します。これは、mkswapがcrypttabスクリプトで実行されると失われるためです。これは、フォーラムが問題を解決するために提案する方法です。これを行う必要があります。
しかし、それは完全には機能しませんでした。 crypttabにバグがあると推測しました(/etc/rcS.d/S26cryptdisks-early
-> /etc/init.d/cryptdisks-early
-> /lib/cryptsetup/cryptdisks.functions
)。それで私はそこに掘りに行き、何も見つかりませんでした。実際に、/etc/init.d/cryptdisks-early restart
を実行すると、/dev/mapper/cryptswap1
リンクが生成されると正常に動作します。
その時点で私が見た可能性のある修正の1つは、スワップパーティション内のすべてのスペースを使用する「ファイル」にスワップを移動することでした。これは汚れており、マウントポイントなどが必要です。アイデアは、パーティション全体のサイズのファイルを作成し、通常のext4として/ swapにマウントし、暗号化されたファイルをスワップとして使用するというものです。このようなもの:
Ext4としてのGParted形式。これによりパーティションがフォーマットされ、新しいUUIDが生成されます。 Sudo mkswap /dev/sdXX
を使用しないでください。スワップとしてフラグが付けられている場合、パーティションは自動的にマウントされます。
Sudo mkdir /swap
ls -l /dev/disk/by-uuid/
Sudo gedit /etc/fstab
#UUID=XXXXXXXXXXXXXXXXXXXXXXXXX /swap ext4 defaults 0 2
を追加
Sudo mount /dev/sdXX /swap
Sudo dd if=/dev/zero of=/swap/swapfile bs=1024 count=800000
Sudo mkswap /swap/swapfile
Sudo swapon /swap/swapfile
Sudo ecryptfs-setup-swap
しかし、私はそれを嫌っていたので、私はそれを試しませんでした。
私が見た別の可能な修正は、次のように自動ランダムキー生成を手動で放棄することでした: http://wiki.drewhess.com/wiki/Creating_an_encrypted_filesystem_on_a_partition#External_links
手動の場所を少し調べた後、最初に/usr/bin/ecryptfs-setup-swap
が行うことを実行して(それがどのように機能するかを確認し、/etc/crypttab
および/etc/fstab
を編集するだけで)手動で修正しました。ブート時に実行するスクリプトを実行します:/etc/init.d/cryptdisks-early restart
;しかし、再び壊れました。履歴書の問題について再考すると、パターンが見つかりました。中断後の再起動で壊れ、壊れたままになります。修正するには、次の手順を実行する必要があります。
Sudo /etc/init.d/cryptdisks-early restart
その後、一時停止しない限り、スワップは正常にマウントされ、摩耗することはありません。これが、短い答えで提案されたスクリプトの出所です。
私は同じ問題を抱えていたので、 この投稿 でうまくいく解決策を見つけました。
基本的に:
Fstabを開きます。
Sudo gedit /etc/fstab
この行を変更します。
/dev/mapper/cryptswap1 none swap sw 0 0
これに:
/dev/mapper/cryptswap1 none swap sw,noauto 0 0
それから
Sudo gedit /etc/rc.local
そしてその直前
exit 0
次の2行を追加します。
sleep 5
swapon /dev/mapper/cryptswap1
その後、SWAPが実際にマウントされており、多くのRAMを消費するアプリケーションを開いて動作していることを確認したい場合は、端末の入力により確認します。
free -m
...および/ homeを暗号化した状態に保つ
ここで提案されている他のソリューションをいくつか試しました。ホットリブート後も機能し続けていましたが、シャットダウンとコールドリスタート後は最終的にすべて失敗しました。
これは、実際に二重のバグに対処していることを示しています。
これらの考えは、関連する Launchpadに提出されたバグ へのコメントにも反映されています。ただし、Upstartからsystemdへの保留中の移行では、現在のLTSシステムのバグを解決するための作業はほとんど行われていません。
この時点で、次の考えが思い浮かびました。
\home
パーティションのみを暗号化するように要求しましたが、それ以外は何も暗号化しませんでした。それで、オペレーティングシステム全体を再インストールすることなく、通常の暗号化されていないスワップとしてスワップを復元するための私のソリューションがあります。
blkid
:$ Sudo apt-get install blkid
をインストールします/etc/crypttab
を編集し、cryptswap1
行全体を削除します:$ Sudo nano /etc/crypttab
linux-swap
パーティションに再フォーマットします。この操作を適用すると、復元された通常のスワップパーティションの新しいUUIDについて通知されます。この情報を保存する機会が提供されます。そうでない場合は、blkid
:$ Sudo blkid
を使用して、コマンドラインからいつでも新しいUUIDを取得できることを知ってください。これで、/etc/fstab
を以前の栄光に戻す時が来ました:$ Sudo nano /etc/fstab
/dev/mapper/cryptswap1
への参照を含む行全体を削除します。#
の前にあるハッシュUUID=...
を削除して、古いswap
行のコメントを解除します。nano
を終了します Ctrl+X。$ Sudo swapon -a
で新しい暗号化されていないスワップの使用を開始できます。