1 問題描述
由於筆者因為某些需要把Windows裝在了U盤上面(在這里建議一下如果有需要請使用固態U盤),在Linux下掛載時,能讀取但並不能寫。
2 嘗試的解決方案
2.1 remount
一開始是因為沒有讀寫權限,所以就重新掛載,命令如下:
mount -o rw,remount /dev/sda2
(/dev/sda2是因為筆者的U盤大小64G,把Windows直接裝在了里面,默認分了兩個分區,一個是啟動分區/dev/sda1,一個是系統分區/dev/sda2)
但是還是不能寫入。
2.2 ntfs-3g
首先安裝了ntfs-3g,然后再次嘗試掛載:
sudo mount -t ntfs-3g /dev/sda2 /run/media/point
sudo ntfs-3g /dev/sda2 /run/media/point
還是不能寫入。
2.3 ntfsfix
ntfsfix能修復常見的錯誤以及NTFS分區不一致的問題,嘗試了一下:
sudo ntfsfix /dev/sda2
還是不能寫入。
3 最終解決方案
再次查了一下資料(戳這里)發現這個可能是因為Windows的快速啟動導致的:

把快速啟動關了就行。
但是這U盤里面的快速啟動貌似關閉不了。。。
最后在StackExchange(戳這里)上找到了答案:

核心是remove_hiberfile這個掛載選項,同時也查了一下man:

在啟動Linux時,Windows是有可能處於hibernate狀態的,該狀態下是不能寫的並且強制只讀掛載,加入remove_hiberfile參數后,去除了hibernation file,這樣在筆者的環境上測試就能正常寫入了,但是要注意使用該參數可能會導致保存的Windows session
數據全部丟失:

所以最終掛載命令如下:
sudo ntfs-3g -o remove_hiberfile /dev/sda2 /run/media/point
測試了一下Windows並沒有任何損壞,因此如果出現上述的問題可以嘗試加上remove_hiberfile參數。
