再起動時に/homeサブディレクトリからマウントされたドライブへのシンボリックリンクがハングする

再起動時に/homeサブディレクトリからマウントされたドライブへのシンボリックリンクがハングする

私のKubuntuワークステーションにはSSDとHDDがあります。 KubuntuのインストールにはSSDが含まれていますが、ドライブ速度が問題にならない一般的な保存用にHDDを使用したいと思います。

次のコマンドを使用して/etc/fstabを介してHDDをマウントしました。 UUID=... /mnt/hdd ext4 defaults 0 2

次のコマンドを使用して、HDDの一部の/homeサブディレクトリへのシンボリックリンクを作成しました。 ln -s /mnt/hdd/Downloads/ ~/Downloads

これにより、目的の結果が生成されます。たとえば、Firefoxダウンロードは/mnt/hdd/DownloadsSSDの代わりにマウントされたHDDパーティションにダウンロードされます。これが唯一のユースケースではありません。目的は、マウントされたHDDに「ダウンロード」や「文書」などのディレクトリを保存すると同時に、デフォルト/ホームの場所(アプリケーションや本人の場合)に表示されることです。

ただし、再起動すると、このシンボリックリンクが中断され、次の結果が表示されます。

$ ls -l ~
...
Downloads -> /mnt/hdd/Downloads/
...

$ ls -l /mnt/hdd/
...
Downloads -> /home/<username>/../../../../../mnt/hdd/Downloads
...

/mnt/hdd/Downloads再起動時にシンボリックリンクが壊れる理由がわかりません。

これは、他のシンボリックリンクが設定されていない新しくインストールされたものです。

私がここで何か間違っているのでしょうか?

編集:いくつかの実験の後、この動作は一貫性がないことがわかりました。シンボリックリンクが途切れることもあり、そうでない場合もあります。再起動時にシンボリックリンク5個のうち1~2個だけが切れる状況がありました。

ベストアンサー1

貼り付けた出力が正しい場合は、/mnt/hdd/Downloadsで非常に奇妙なことが起こっています。

特定の出力

$ ls -l /mnt/hdd/
...
Downloads -> /home/<username>/../../../../../mnt/hdd/Downloads
...

/mnt/hdd/Downloadsパスはシンボリックリンクのようです...うーん... .(ルートディレクトリにのみ保持されます)/mnt/hdd/Downloadsに移動します。

したがって、まず/mnt/hdd/Downloadsが誤って生成されたように見え、自分を指す循環リンクのように見えます。

それから何を得ますかmount | grep /mnt/hdd?ドライブが表示されると、/etc/fstabが正常に動作しているようです。空の場合、ドライブはマウントされていません。


ドライブがマウントされている場合

申し訳ありません。以前のダウンロードが失われた可能性があります。

この時点で私が提案できる最善の方法は、unlink /mnt/hdd/Downloads循環シンボリックリンクを削除して正しいダウンロードディレクトリを再作成することですmkdir -p /mnt/hdd/Downloads(ここでダウンロードディレクトリにフラグは-p必要ないかもしれませんが、他のディレクトリには必要かもしれません)。


ドライバがインストールされていない場合

次のコマンドを使用して、パスからすべてのファイルを削除します/mnt/hdd/。 (ドライブがマウントされていない場合、パスは実際にはHDDではなくSSDにあります。) sudo mv /mnt/hdd /mnt/hdd.bkup; sudo mkdir -p /mnt/hdd

次に、sudo mount -aドライブをドライブがマウントされていることを確認します。そうでない場合は、/ etc / fstabを修復する必要があります。

mkdir -p /mnt/hdd/Downloadsすべてがうまくいくと仮定すると、上記の方法に従うことができます。


本当の問題

ここではいくつかの推論が必要ですが、フォームへのリンクがあるという事実は/mnt/hdd/Downloads -> /home/<username>/../../../../../mnt/hdd/Downloads非常に間違っているようです。

を実行してシンボリックリンクを作成したと述べましたln -s /mnt/hdd/Downloads/ ~/Downloads

問題のあるパスは、lnある時点で無効な順序で引数を使用してコマンドを実行したか、または任意の時点で無効なディレクトリ(たとえばln -s ~/Downloads /mnt/hdd/Downloads)でコマンドを実行した可能性があることを示します。

これが発生するタイミングによっては、パスにシンボリックリンクが配置されることがあります。/mnt/hdd/Downloads SSDへこれにより、ハードドライブが正しく装着されなくなります。この場合、「ドライブがインストールされていない場合」の指示に従ってください。

ファイルが含まれているドライブに関する詳細情報を取得できますが、df /mnt/hdd/Downloadsこれらの詳細はこの問題には全く重要ではないようです。


最後のポイント

この奇妙な動作は、Linuxを再起動することとは何の関係もないようです。コマンドがスクリプトによって実行される場合ln(再起動時またはいつでも)、そのスクリプトが犯人である可能性が最も高いため、そのスクリプトに関する詳細を提供する必要があります。

おすすめ記事