マウントが自動的に失敗するのはなぜですか?

マウントが自動的に失敗するのはなぜですか?

デバイスをインストールしようとして失敗しました。奇妙なことは、mountコマンドが成功し、終了コード0を返しますが、デバイスがマウントされていないことです。なぜこれが起こるのか、どのように調べるべきかを知っていますか?次の例をご覧ください。

[root@mymachine ~]# blkid -o list
device         fs_type  label     mount point        UUID
-----------------------------------------------------------------------------------------
/dev/xvda1     xfs                /                  29342a0b-e20f-4676-9ecf-dfdf02ef6683
/dev/xvdy      ext4               /vols/data         72c23c30-2704-42ec-9518-533c182e2b22
/dev/xvdb      swap               <swap>             990ff722-158c-4ad5-963a-0bc9e1e2b17a
/dev/xvdx      ext4               (not mounted)      956b5553-d8b4-4ffe-830c-253e1cb10a2f
[root@mymachine ~]# grep /dev/xvdx /etc/fstab
/dev/xvdx /vols/data5 ext4 defaults 0 0
[root@mymachine ~]# mount -a; echo $?
0
[root@mymachine ~]# blkid -o list
device         fs_type  label     mount point        UUID
-----------------------------------------------------------------------------------------
/dev/xvda1     xfs                /                  29342a0b-e20f-4676-9ecf-dfdf02ef6683
/dev/xvdy      ext4               /vols/data         72c23c30-2704-42ec-9518-533c182e2b22
/dev/xvdb      swap               <swap>             990ff722-158c-4ad5-963a-0bc9e1e2b17a
/dev/xvdx      ext4               (not mounted)      956b5553-d8b4-4ffe-830c-253e1cb10a2f
[root@mymachine ~]# mount /dev/xvdx /vols/data5; echo $?
0
[root@mymachine ~]# blkid -o list
device         fs_type  label     mount point        UUID
-----------------------------------------------------------------------------------------
/dev/xvda1     xfs                /                  29342a0b-e20f-4676-9ecf-dfdf02ef6683
/dev/xvdy      ext4               /vols/data         72c23c30-2704-42ec-9518-533c182e2b22
/dev/xvdb      swap               <swap>             990ff722-158c-4ad5-963a-0bc9e1e2b17a
/dev/xvdx      ext4               (not mounted)      956b5553-d8b4-4ffe-830c-253e1cb10a2f
[root@mymachine ~]#

fstabを完了してください。

[root@mymachine ~]# cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Mon May  1 18:59:01 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=29342a0b-e20f-4676-9ecf-dfdf02ef6683 /                       xfs     defaults        0 0
/dev/xvdb swap swap defaults,nofail 0 0
/dev/xvdy /vols/data ext4 defaults 0 0
/dev/xvdx /vols/data5 ext4 defaults 0 0

答え1

通常、マウントは問題が発生してもゼロを返しません。同様の問題に直面したとき、その理由はsystemdがファイルシステムをマウントした直後にアンマウントしたからです。

strace mount /dev/xvdx /vols/data5システムコールの結果を確認できます。mount /dev/xvdx /vols/data5; ls -li /vols/data5mountコマンドの直後に何かがインストールされていることを確認することもできます。

答え2

何か(おそらくsystemd)がファイルシステムをアンマウントしているという許可された答えに加えて、私の場合に何が起こっているのかをもっと詳しく説明します。

Journalctlが示すように、実際にシステム化されています。

私のシナリオでは、fstabにこれがあります。

/dev/sda6 /fasthome           ext4    defaults        0       2
/dev/sda7 /mnt/vms  ext4 defaults 0 2

(ファストホームは暗号化なしでディスク集約的な作業を行うことができる場所です。)

したがって、起動するために外部USBドライブを接続するとsdaになり、内部ドライブはsdbになります。明らかに、これらのマウントポイントが機能していないので、私は次のように修正しました。

/dev/disk/by-uuid/<some uuid> /fasthome ext4 defaults 0 2
/dev/disk/by-uuid/<other uuid> /mnt/vms ext4 defaults 0 2

その後、実行しましたが、mount -aエラーなしでコマンドは完了しましたがインストールされていないようです。それで私もmount /dev/disk/by-uuid ...同じことを試みて、結局こんな質問をするようになりました。

はい、削除するシステムがあります。私の場合、その理由は次のとおりです。前に /fasthome~だった試験を終えたにインストールするには、/dev/sda6systemdが非アクティブデバイスで完全に停止します。したがって、私のuuidパスシンボリックリンクが/dev/sdb6systemdを正しく指していても、ここで何が起こるのか気にしません。

この特別なケースに対する答えは、単に再起動して間違ったデバイス参照を取り除くことです。

私はこの問題を引き起こす可能性がありますが、他の1001の状況があると確信しています。

答え3

実行systemctl daemon-reloadまたは再起動するのに役立ちます。

Systemdは依存関係が欠落していると考え、すぐにボリュームを切り離します。

私はこれを見つけましたhttps://github.com/systemd/systemd/issues/1741これは以前の回答で言及されました。

答え4

前のアイテムを削除するのを忘れたときも同じことが起こりました。/etc/fstab

cli コマンドは正確ですが、fstab エントリは無効な FS タイプを指定するため、これは非常に非合理的な動作です。 mount コマンドは両方とも無視します。

関連情報