設定開機自動挂載NTFS檔案系統
- 檢視分區:
sudo fdisk --list
- 打開/etc/fstab:
,以我自己的情況為例,添加以下内容并儲存:sudo gedit /etc/fstab
該指令共有6個參數,以空格分割,其中:/dev/sda1 /media/D ntfs-3g user,auto,rw,dev,exec,suid,async,utf8,dmask=000,fmask=111 0 0
-
表示你要挂載的分區,根據你檢視分區的結果填寫。/dev/sda1
-
表示挂載點,根據你自身需求填寫。/media/D
-
表示待挂載分區使用的檔案系統。分為以下幾種情況:ntfs-3g
- NTFS:填寫
或ntfs-3g
(在Ubuntu 20.04中ntfs是連結到ntfs-3g的)。ntfs
- FAT32或FAT16或FAT:填寫
.vfat
- 自動檢測檔案系統:填寫
.auto
- NTFS:填寫
-
為一個參數,各項之間用usr ... fmask=111
分割,用于設定挂載分區的特性:,
-
和auto
: 這是控制裝置是否自動挂載的選項。auto是預設選擇的選項,這樣,裝置會在啟動或者你使用mount -a指令時按照fstab的内容自動挂載。如果你不希望這樣,就使用noauto選項,如果這樣的話,你就隻能明确地通過手工來挂載裝置。noauto
-
和user
:這是一個非常有用的選項,user選項允許普通使用者也能挂載裝置,而nouser則隻允許root使用者挂載。nouser是預設選項,這也是讓很多 Linux新手頭疼的東西,因為他們發現沒有辦法正常挂載光驅,Windows分區等。如果你作為普通身份使用者遇到類似問題,或者别的其他問題,就請把 user屬性增加到fstab中。nouser
-
和exec
: exec允許你執行對應分區中的可執行二進制程式,同理,noexec的作用剛好相反。如果你擁有一個分區,分區上有一些可執行程式,而恰好你又不願意,或者不能在你的系統中執行他們,就可以使用noexec屬性。這種情況多發生于挂載Windows分區時。exec是預設選項,理由很簡單,如果 noexec變成了你/根分區的預設選項的話……noexec
-
和rw
:讓該分區以可擦寫或者是隻讀的型态挂載上來,如果你想要分享的資料是不給使用者随意變更的, 這裡也能夠配置為隻讀。則不論在此檔案系統的檔案是否配置 w 權限,都無法寫入!ro
-
和sync
:對于該檔案系統的輸入輸出應該以什麼方式完成。sync的意思就是同步完成,通俗點講,就是當你拷貝一個東西到裝置或者分區中時,所有的寫入變化将在你輸入cp指令後立即生效,這個東西應該立馬就開始往裝置或者分區裡面拷貝了。而如果是async,也就是輸入輸出異步完成的話,當你拷貝一個東西到裝置或者分區中時,可能在你敲擊cp指令後很久,實際的寫入操作才會執行,換句話說,就是進行了緩沖處理。有時候這種機制蠻不錯的,因為sync會影響你系統的運作速度,但是這也會帶來一些問題。想一想,當你希望将一個檔案拷貝到u盤上時,你執行了cp 指令,卻忘記執行umount指令(它會強行将緩沖區内容寫入),那麼你拷貝的檔案實際上并沒有在u盤上面。如果你是使用的mv指令,而你又很快将u盤拔出……恭喜你,檔案會從這個星球上消失的。是以,雖然async是預設屬性,但是對于u盤,移動硬碟這種可移動儲存設備,最好還是讓他們使用sync選項。async
-
和suid
:該檔案系統是否允許 SUID 的存在?如果不是運作檔案放置目錄,也可以配置為 nosuid 來取消這個功能!nosuid
-
defaults
:同時具有 rw, suid, dev, exec, auto, nouser, async 等參數。 基本上,預設情況使用 defaults 配置即可!
以上其實是 mount 指令的參數,在 Ubuntu 20.04 中配合ntfs-3g指令的參數,還有下述選項:
-
:這個是用來指定挂載windows分區後檔案的預設權限(事實上,是預設沒有的權限,即umask參數指出的值挂載後的檔案将不具有),因為Windows分區裡面的檔案是沒有權限這個概念的,是以要手動指定預設權限,于是,指定umask為000,就是不排除任何,即具有所有權限。umask
-
:針對檔案進行設定,意義和用法同umask.fmask
-
:針對檔案夾進行設定,意義和用法同umask.dmask
-
- 訓示能否被 dump 備份指令作用。dump 是一個用來做為備份的指令, 我們可以透過 fstab 指定哪個檔案系統必須要進行 dump 備份! 0 代表不要做 dump 備份, 1 代表要每天進行 dump 的動作。 2 也代表其他不定日期的 dump 備份動作, 通常這個數值不是 0 就是 1.
- 訓示是否以 fsck 檢驗扇區。啟動的過程中,系統預設會以 fsck 檢驗我們的 filesystem 是否完整 (clean)。 不過,某些 filesystem 是不需要檢驗的,例如記憶體置換空間 (swap) ,或者是特殊檔案系統例如 /proc 與 /sys 等等。是以,在這個字段中,我們可以配置是否要以 fsck 檢驗該 filesystem 喔。 0 是不要檢驗, 1 表示最早檢驗(一般隻有根目錄會配置為 1), 2 也是要檢驗,不過 1 會比較早被檢驗啦! 一般來說,根目錄配置為 1 ,其他的要檢驗的 filesystem 都配置為 2 就好了。
-
解決NTFS檔案系統不能寫入的問題
如果經過以上設定,挂載的NTFS檔案系統依然是隻讀權限,不能寫入,最有可能的情況是:
- Windows系統開啟了快速啟動。這種情況一般出現在Ubuntu與Win10共存的計算機上,需要在Win10的電源管理中關閉快速啟動。
- 在啟動Ubuntu系統之前,與之共存的Windows系統執行過強制關機。這種情況需要在Ubuntu系統中修複檔案系統:
,/dev/***表示待挂載的受到Windows強制關機影響的NTFS檔案系統。sudo ntfsfix /dev/***
其實無論是Windows開啟了快速啟動還是執行了強制關機,其本質都是待挂載的NTFS檔案系統中存放了Widnows未釋放緩存,導緻Ubuntu無法寫入。隻要掌握了這個原則,其它類似的情況就好解決了。
參考文獻
Linux檔案之/etc/fstab
ubuntu開機自動挂載的ntfs硬碟的權限問題
鳥哥的Linux私房菜 第八章、Linux 磁盤與檔案系統管理