スワップパーティションが存在し、fstab
にロードするように設定されていても、まだマウントされていません。
fdisk
は、スワップパーティションに対してこれを返します。
file system: /dev/sda5
start: 1
end: 244
blocks: 1951744
id: 82
system: Linux swap / Solaris
そして私のfstab
には
file system: /dev/sda5
mount point: none
type: swap
options: sw
dump: 0
pass: 0
swapon /dev/sda5
で問題なくロードできますが、起動時にロードされません。
トラブルシューティングに役立つ情報を提供できますか?他にどんな情報が役立つかわからない
要求に応じて、完全なfstab
ファイル:
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc nodev,noexec,nosuid 0 0
/dev/sda6 / ext4 errors=remount-ro 0 1
/dev/sda5 none swap sw 0 0
/dev/sr1 none udf rw,noauto 0 0
私はシステムログを見ていましたが、これを見ましたが、それが何を意味するのか、それが正常かどうかはわかりませんが、
Apr 29 17:57:24 caelan-ubuntu os-prober: debug: running /usr/lib/os-probes/50mounted-tests on /dev/sda5
Apr 29 17:57:24 caelan-ubuntu 50mounted-tests: debug: /dev/sda5 is a swap partition; skipping
mountall
の出力
mountall: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
mountall: Connection is closed
mountall -v
の出力
http://pastie.org/private/ras9mc7mf66yudnjoem4w
swap finished
...
local 4/4 remote 0/0 virtual 12/12 swap 0/0
わからない、まだスワップをロードしていない...まだコマンドラインで追加することができ、私のWindowsパーティションはブート時にマウントされており、それもfstabにあります。
これは愚かに聞こえますが、試してください:/etc/fstab
を並べ替えて、スワップパーティションを最後に置きます。
非_rootユーザーとして実行するとmountall -v
は無害に失敗し、その出力を使用して、ブート時にmountallが正しく機能しない理由を診断できます。 mountall -v
からの出力の最後の行には、重要な手がかりが含まれています。
local 4/4 remote 0/0 virtual 12/12 swap 0/0
つまり、0個のスワップドライブがマウントされ、0個のスワップドライブが/ etc/fstabにあります。
さて、なぜマウントオールがスワップドライブを/ etc/fstabにリストしなかったのですか?良い質問。これはおそらくmountall
に対するバグです。診断するために、/ etc/fstabをコピーし、mountall -v
を非rootユーザーとして実行しました。/etc/fstabをランダムに編集し、mountall -v
をテストし続けることで、mountallの報告された「スワップ0/0」を変更する方法を見つけました。/etc/fstabの行を並べ替えるだけで、「swap 0/1」、つまり/ etc/fstabにある1つのスワップドライブに変更できます。これで、適切に起動するのに十分かもしれません。そうでない場合は、mountall -v
の新しい結果を投稿してください。
ご質問ありがとうございます。私がそれを見ていたとき、昨日、Nattyにアップグレードした後、私のシステムに同じ問題があることを発見しました。問題は、アップグレード中にスワップパーティションのUUIDが変更されたことです。修正方法は次のとおりです。
Sudo blkid
を実行します。これにより、ディスク上のすべてのパーティションの現在のUUIDが表示されます。スワップパーティションのUUIDが/ etc/fstabの値と異なることがわかると思います。
異なる場合は、Sudoでテキストエディターを実行して/ etc/fstabを編集します。上記のblkid
コマンドで示されているように、UUIDの値を現在の実際の値に置き換えます。引用符は含めないでください。
ファイルを保存し、システムを再起動します。 free -m
を実行して、変更によって問題が修正されたことを確認します。
$ free -m
total used free shared buffers cached
Mem: 1001 604 396 0 123 199
-/+ buffers/cache: 281 719
Swap: 1953 0 1953
12.04へのアップグレード後、特定の小さな異常が発生しましたが、大したことはありません。 Olympus e330から14メガピクセルのjpgをGimpしようとするまで、スワップパーティションが機能していなかったことに気付きませんでした。うわぁ。
救助のためのフォーラム。手がかり:
blkid
ショー
/dev/sdb6: UUID="3e0550cf-4a55-4aa8-80fa-24103c1b25a7" TYPE="swap"
しかし、システムモニターによるとアクティブではありません。
UUIDは間違いなく正しいのですが、行きません...このコマンドにどのように到達したのかわかりません:
# blkid -p /dev/mapper/foo-swap_1
error: /dev/mapper/foo-swap_1: No such file or directory
ファイルマネージャーは、0バイトのアイコン、ファイル名コントロールを示してくれました。何によって?
$ Sudo swapon --all --verbose yielded
swapon: cannot find the device for UUID=3e0550cf-4a55-4aa80fa-24103c1b25a7
/ etc/fstabファイルを編集して追加しました
/dev/sdb6 none swap sw 0 0
再起動すると、システムモニターにアクティブと表示されます。
OK、私はここにいてコマンドを見つけたに違いありません
blkid -p /dev/mapper/foo-swap_1
だから、それは私より賢い人にとっての手がかりです。それが役に立てば幸い。
私の/etc/fstab
(Debian)のコンテンツは次のとおりです。
UUID=7b533ab9-cb87-4a30-a4d8-689788f21985 none swap sw 0 0
あなたはあなたの設定について私たちに言ったことに基づいてその行を持っている必要があります:
/dev/sda5 none swap sw 0 0
Linuxの初心者としてこれについて疑問に思っているのはなぜでしょう。 RAMは最近安価です。 4 GBあり、Java開発を行います(IntelliJは特に大量のRAMを使用します)が、それを使い果たすことはありません。
そして、私はあなたがこの種の問題を抱えていることに驚いていると言わなければなりません。デフォルトのオプションを使用してUbuntuインストーラーを実行しませんでしたか?
または、デュアルブート(Win/Lin)のためにこれらの問題がすべて発生している可能性がありますか?
Ubuntu 12.04(正確)で同様の問題が発生しましたが、/etc/fstab
はすでに正しかったです。 blkid
とmountall
がスワップパーティションを検出できなかったため、スワップパーティションのフォーマットに問題があることがわかりました。
詳細:
/dev/mapper/foo-swap_1
-暗号化(LUKS)パーティション上のLVM論理ボリュームでした。swapon -a
を手動で実行すると機能しました。lsblk
はスワップパーティションを示しましたblkid
はスワップパーティションを表示しませんでしたblkid -p /dev/mapper/foo-swap_1
は次のメッセージを出力しました:
/dev/mapper/foo-swap_1: ambivalent result (probably more filesystems on the device, use wipefs(8) to see more details)
wipefs -n /dev/mapper/foo-swap_1
は2つの異なるファイルシステム署名を示しました!
両方の署名を削除(wipefs -a
)し、スワップを再フォーマット(mkswap
)して問題を修正しました。
修正を自動化するスクリプトを次に示します。
#!/bin/sh
# helper functions
log() { printf %s\\n "$*"; }
error() { log "ERROR: $*" >&2; }
fatal() { error "$*"; exit 1; }
try() { "$@" || fatal "'$*' failed"; }
# path to the swap partition
SWAP=/dev/mapper/foo-swap_1
# remember the UUID of the swap partition
UUID=$(try sed -e 's/RESUME=UUID=//' /etc/initramfs-tools/conf.d/resume) || exit 1
[ -n "${UUID}" ] || fatal "couldn't read UUID"
# delete filesystem/raid signatures from the swap partition
try wipefs -a "${SWAP}"
# format the swap partition
try mkswap -f -U "${UUID}" "${SWAP}"
簡単な答えはありませんが、問題を絞り込むために確認できる項目をいくつか見つけました。
emits all-swaps
という行を含める必要がありますmountall
を非rootユーザーとして実行する場合、その応答にはswapon: /dev/sda5: open failed: Permission denied
が含まれます。dmesg | less
には、私のもののようなものを含める必要があります。[2.272092] sda:sda1 sda2 sda3
[2.272924] sd 1:0:0:0:[sda]接続されたSCSIディスク
...(sda1、sda2のマウントに関するその他の行)...
[20.298550]/dev/sda3に10239996kスワップを追加します。優先度:-1エクステント:1全体:10239996k
free
はSwap: 10239996 0 10239996
のようなものを報告する必要がありますUUIDの後:
# Turn off swap swapoff "${SWAP}"
最後に:
swapon "${SWAP}"