Windowsで使ってたHDDがLinuxでマウントできない話

最近自宅のメインPCをWindowsからLinuxに変えて、SSDは完全に初期化してインストールしたんですけど、HDDの方はデータ残したら、HDDがうまくマウントできなくなって困った話

HDDがマウントできない

インストールしたディストリビューションUbuntuベースのelementary OS(0.4.0 Loki)です。

ファイルマネージャからドライブをダブルクリックしてもマウントできなかったので、mountコマンドで手動でマウントしようと思ったら 

$ sudo mkdir /media/TOSHIBA
$ sudo mount /dev/sda1 /media/TOSHIBA      
The disk contains an unclean file system (0, 0).
Metadata kept in Windows cache, refused to mount.
Failed to mount '/dev/sda1': 許可されていない操作です
The NTFS partition is in an unsafe state. Please resume and shutdown
Windows fully (no hibernation or fast restarting), or mount the volume
read-only with the 'ro' mount option.

えー、マウントできない。

Windowsハイバネーションも高速起動も切ってるので、とりあえずエラーメッセージに従って、読み取り専用でマウントしてみる。

$ sudo mount -o ro /dev/sda1 /media/TOSHIBA
$ df
Filesystem    1K-blocks       Used    Available   Use% Mounted on 
udev            8147088          0      8147088     0% /dev
tmpfs           1634860       9836      1625024     1% /run
/dev/sdb1     464151320   15489856    425060876     4% /
tmpfs           8174292       6008      8168284     1% /dev/shm
tmpfs              5120          4         5116     1% /run/lock
tmpfs           8174292          0      8174292     0% /sys/fs/cgroup
tmpfs           1634860         40      1634820     1% /run/user/1000
/dev/sda1    1953512444  224375328   1729137116    12% /media/TOSHIBA

ひとまずマウントはできたっぽい。

$ ls -a /media/TOSHIBA
. ..

無理やんけ。

読み取り専用でマウントしても読めないのか。

/etc/fstabを上手に編集してあげたら良さそうだけど、変にミスってHDDのデータ飛んでも困るので、ひとまず放置。

 

ntfsfixを使う

ネットで検索したら、NTFSでフォーマットされてるドライブが認識できないときはntfsfixを使えばいいそうです。

manを読むと、ntfsfixは一般的なNTFSの問題を解決してくれるユーティリティみたいなので、NTFS周りで問題が起きたときはとりあえずntfsfixすればいいのかな?(要出典)

ファイルシステムの話は主に使われているのがNTFSFAT32の2種類っていうことぐらいしか知らないので、今度一回ちゃんと調べないとなぁ......

$ sudo ntfsfix /dev/sda1
Mounting volume... The disk contains an unclean file system (0, 0). 
Metadata kept in Windows cache, refused to mount.
FAILED Attempting to correct errors... 
Processing $MFT and $MFTMirr... 
Reading $MFT... OK 
Reading $MFTMirr... OK
Comparing $MFTMirr to $MFT... OK
Processing of $MFT and $MFTMirr completed successfully.
Setting required flags on partition... OK
Going to empty the journal ($LogFile)... OK
Checking the alternate boot sector... OK
NTFS volume version is 3.1. NTFS partition /dev/sda1 was processed successfully.

お、うまくいったっぽい。

後は、さっき読み取り専用でマウントしていたので、アンマウントしてから再度マウントすればいけるはず。

$ sudo umount /dev/sda1
$ sudo mount /dev/sda1 /media/TOSHIBA/
$ ls /media/TOSHIBA
System Volume Information
Apprication
Game
Music
Picture

ちゃんと認識できました。

 

ntfsfixを使うときの注意点

今回はなんとなく勢いでマウント中のドライブに対してntfsfixしちゃったけど、一回ちゃんとアンマウントしてからやりましょう。

データが飛んでも知りません。多分飛ばないけどね(でも再起動しないとダメとかはありそう)

 

まとめ

ntfsfixのオプションを眺めていると、まるでWindowsがダーティービットを消してないみたいな気がするんだけど(気がするだけでよく調べてない)なんでLinuxで読めなくなるのかよくわからないので、また今度ゆっくり調べたい。