外付けハードドライブがあり、Linux Mintが外付けハードドライブを接続したときに自動マウントしようとすると、突然エラーが発生します。何らかの理由で Nemo に 2 つの「外部ドライブ」(ドライブ名) ラベルが表示されますが、アクセスしようとすると両方とも同様のエラーが表示されます.唯一の違いは、2番目のドライブアクセスエラーが/dev/sdb2
以下のようにsdb3ではなくsdb3のものであることです。
Error mounting /dev/sdb3 at /media/branden/External_Drive: Command-line `mount -t "ntfs" -o "uhelper=udisks2,nodev,nosuid,uid=1000,gid=1000,dmask=0077,fmask=0177" "/dev/sdb3" "/media/branden/External_Drive"' exited with non-zero exit status 12: NTFS signature is missing.
Failed to mount '/dev/sdb3': Invalid argument
The device '/dev/sdb3' doesn't seem to have a valid NTFS.
Maybe the wrong device is used? Or the whole disk instead of a
partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?
これを手動でインストールしようとしましたが、さらに奇妙なことに出会いました。有効なコマンドは次のとおりです。
mount /dev/sdb /mnt
これがインストールされているようです。運転する一つではなく分割。これにより、ドライブ全体にアクセスできますが、なぜこれが起こるのかわかりません。外側にはパーティションが1つしかないはずですが、なぜ次のような結果が表示されるのかわかりません。 Xが1、2、3、または4の位置にマウントしようとすると、/dev/sdbX
次の結果が表示されます"special device /dev/sdbX does not exist"
。
これは私が得た結果です。fdisk -l、テキスト形式が不都合なので画像を投稿します。
そして別の-l:
どんな提案がありますか?
同様に、/ etc / fstabの特殊文字によるテキスト形式のため、読み取れなくなります。
私は、ディレクトリ構造の特定の場所にデバイスをインストールするための特別な規制を作成したことがありません。認識されると、起動時にメディアデバイスとしてインストールされます。最近ドライブのクローンを作成しましたが、ドライブが起動時にマウントされなくなりました。
出力ls /dev/sdb*
/dev/sdb /dev/sdb2 /dev/sdb3
長すぎます。- 別のディスクからHDDを複製した後、ドライブはメディアデバイスとしてマウントされません(USBインタフェースを備えた外部HDDであるため)。また、 mount /dev/sdb /mnt
.mount /dev/sdb1 /mnt
とfdisk
の出力は、parted
電子が存在してはならない複数のパーティションを表示するという点で異なります。
答え1
どうしたの?
だから私はこの問題を調査するのに時間を費やし、この問題がカーネルのバグによって引き起こされたと確信しています。ディスクのルートにNTFSファイルシステムがあるため、エラーが発生します(つまり、ファイルシステムはディスクの先頭から始まります)。通常、ディスクルートにはパーティションテーブルが含まれ、ファイルシステムは個々のパーティション内に配置されます。
通常、これは他のファイルシステムではうまく機能しますが、NTFSという事実はカーネルを混乱させるようです。 NTFS ファイルシステムを認識せず無視しますが、代わりに MBR パーティションテーブルとして認識し、存在しないパーティションに関連する一部のデバイスファイルを生成します。
なぜそれを知らないのかわかりませんsdb1
。ディスクの始まりと終わりはディスクの終わりを過ぎてsdb4
表示されません。おそらくカーネルは他の問題を発見したが、sdb1
問題を引き起こさなかっただろう。しかし、あなたはそれを理解していますsdb2
。sdb3
解決策
解決策は、システムの残りの部分が信頼できないパーティションを無視するようにすることです。これを行うには、まずsudo udevadm info /dev/sdb | grep ID_SERIAL=
ディスクが挿入されたときにディスクのシリアル番号を検索するコマンドを実行します=
。次に、パスを含むファイルを作成します/etc/udev/rules.d/99-hide-partitions.rules
。次の2行を入力し、前のxxxxx
シリアル番号に置き換えます。
ID_SERIAL=xxxxx, ID_PART_ENTRY_NUMBER=="2", ENV{UDISKS_IGNORE}="1"
ID_SERIAL=xxxxx, ID_PART_ENTRY_NUMBER=="3", ENV{UDISKS_IGNORE}="1"
ファイルを保存してディスクを取り出して接続すると、すべてが正常です。
選ぶ
もちろん、別のオプションは、ディスクを再フォーマットし、その上にパーティションテーブルとNTFSファイルシステムを配置するか、別のファイルシステムを使用することです。
NTFSパーティションを使用する理由は、Windowsとの互換性が原因である可能性があるため、長期的にはより良いソリューションになる可能性があります。 Windowsでの私の経験は、パーティションテーブルがないディスクも好きではないということです(これはおそらくこのバグが以前にLinuxに表示されなかった理由です)。ドライブがWindowsで動作していることを確認できます(またはすでに知っている可能性があります)。この場合、Linux で正常に動作しないディスクに Windows で動作しない NTFS ファイルシステムを使用することはあまり役に立ちません。
LinuxとWindowsでうまく動作するファイルシステムが必要な場合は、良い試みは次のとおりです。 UDF。
エラーレポート
このバグをカーネル開発者に報告することをお勧めします。便利なのは、MBRパーティションテーブルとして誤って解釈されたドライブの最初の512バイトのコピーです。すべてのNTFSファイルシステムでこのエラーが発生しない場合は、エラーを再現すると便利です。ドライブの一部をコピーするにはmbr.bin
:
sudo dd if=/dev/sdb of=mbr.bin bs=512 count=1
バグを直接報告したい場合は、いつでも報告してください。そうでない場合は、ここで誰かができるようにファイルをオンラインのどこかに投稿してください。再フォーマットする場合、これが最初にすべきことです。