1. 程式人生 > >Linux下通過修改fstab來自動掛載Windows 分割槽

Linux下通過修改fstab來自動掛載Windows 分割槽

我電腦裝的是Windows和Linux雙系統,以前在Linux下,要開啟Windows系統的C盤或D盤的時候,總是要輸入密碼,很麻煩,而且麻煩了很長時間.


後來有一天浩哥看到了,說可以在Linux開機時自動掛載Windows分割槽的,修改/etc/fstab這個檔案,可以採用每個分割槽的UUID.後來校長也看到了我每次麻煩的操作,說是確實可以搞,而且他已經搞定了.我想我也得搞搞了.


首先就是man mount ,mount裡面提到,UUID和LABEL的方式更健壯,更具魯棒性.浩哥說的果然是對的.


mount裡面也提到可以參照fstab的manual文件,所以在man fstab後發現,fstab檔案是一個多檔案系統的資訊描述檔案,應用程式不能修改它,而它的維護和修改任務則需要系統管理員來完成.每個檔案系統在fstab中表示為一行,一行有多個域(field),每個域用空格或tab鍵隔開.下面我們就看一下各個域及其含義.


六個域名稱如下:


<file system>     <mount point>     <type>     <options>     <dump>     <pass>
<pre> 這是兩個檔案系統的例子:
 UUID=22b1037f-6c5e-46d0-b965-44cc42313795  /     ext4 errors=remount-ro 0 1
 UUID=7c4b5af9-599b-4052-aeb1-5dbd78f4d8e8  /home ext4 defaults          0 2
</pre>
1.file system:表示將要掛在的快裝置的名稱.注意這個裝置也可以是遠端裝置,比如說是遠端伺服器上的某個裝置,後面我會舉一個例子.對於本地裝置,該域格式可以是/dev/cdrom,LABEL=&lt;label&gt;,或者UUID=&lt;uuid&gt;;對於遠端檔案系統,格式為&lt;host&gt;:&lt;dir&gt;,如 freeshell.ustc.edu.cn:/.遠端裝置格式好寫,對於本地裝置,如何獲取UUID 號和LABEL呢?要掛載的/dev/sdb1還是/dev/sda5呢?這個可以用blkid命令檢視:
<pre>sudo blkid
/dev/sda1: LABEL="M-gM-3M-;M-gM-;M-^_M-dM-?M-^]M-gM-^UM-^Y" UUID="9ED61632D6160B63" TYPE="ntfs" PARTUUID="5be4a3f9-01" 
/dev/sda2: UUID="908265F98265E466" TYPE="ntfs" PARTUUID="5be4a3f9-02" 
/dev/sda3: UUID="98B6FE61B6FE3EF6" TYPE="ntfs" PARTUUID="5be4a3f9-03" 
/dev/sda5: UUID="7c4b5af9-599b-4052-aeb1-5dbd78f4d8e8" TYPE="ext4" PARTUUID="5be4a3f9-05" 
/dev/sda6: UUID="22b1037f-6c5e-46d0-b965-44cc42313795" TYPE="ext4" PARTUUID="5be4a3f9-06" 
</pre>
我們知道,Windows系統的分割槽格式是ntfs(new technology file system),從上面的輸出中我們可以知道,要掛載的Windows分割槽是/dev/sda2和/dev/sda3.因為這兩個分割槽沒有LABEL,所有就沒法採用LABEL=&lt;label&gt;的方式來表示第一個域了.所以我們要掛載的兩塊Windows分割槽的第一個域可以這樣寫:
<pre>#C盤
/dev/sda2
#D盤
/dev/sda3
</pre>
或者:
<pre>#C盤 
UUID=908265F98265E466 
#D盤 
UUID=98B6FE61B6FE3EF6
</pre>
第一個域就寫好了,下面看第二個域.
2.mount point: 即掛載點,使用過mount命令的同學應該明白這個域是幹什麼的,簡單來說就是將物理的儲存盤在Linux系統中找一個點放置下來,相當於在Linux檔案樹上找一個點,將物理儲存對應到這個點上.掛載在這個點後,所有對該點的操作都會寫入到對應的物理儲存中.在最頂上的掛載例子中,我們看到UUID=22b1037f-6c5e-46d0-b965-44cc42313795(從blkid命令結果可以看出,該分割槽是/dev/sda6)的物理儲存掛載到了/目錄(Linux系統根目錄),也就是說/目錄下面的所有東西都寫入到該分割槽中(/home目錄除外),同理,所有/home目錄下的內容都寫入到UUID=7c4b5af9-599b-4052-aeb1-5dbd78f4d8e8(從blkid命令結果可以看出,該分割槽是/dev/sda5)的分割槽中.


那麼,我們要把C盤和D盤掛載到哪裡呢?我是這樣做的:
a.先檢視沒有自動掛載Windows分割槽之前,手動掛載時,系統會把C盤和D盤掛載到哪,結果如下:/media/wang(wang是我的使用者名稱),C盤被命名為908265F98265E466,D盤被命名為98B6FE61B6FE3EF6,即其相應的UUID.
b.所以我想,可能是掛載到/media目錄下的任意一個子目錄下吧,
所以我將該域分別設定為/media/c和/media/d,綜合前兩個域,應該寫成:
<pre>#C盤
/dev/sda2 /media/c
#D盤
/dev/sda3 /media/d
</pre>
或者:
<pre>#C盤 
UUID=908265F98265E466 /media/c
#D盤 
UUID=98B6FE61B6FE3EF6 /media/d
</pre>
下面看第三個域type:


3.type 即檔案系統的格式,像Linux下常用的 ext,ext1,ext2,ext3,Windows下常用的fat16,fat32,ntfs等.可以根據blkid命令的結果來寫該域.根據blkid的結果, 我們要掛載的C盤和D盤的檔案系統格式為ntfs,所以前三個域都確定了,有如下寫法:
<pre>#C盤
/dev/sda2 /media/c ntfs
#D盤
/dev/sda3 /media/d ntfs
</pre>
或者:
<pre>#C盤 
UUID=908265F98265E466 /media/c ntfs
#D盤 
UUID=98B6FE61B6FE3EF6 /media/d ntfs
</pre>
4.第四個域是option:選項,該域表示掛載的時候的一些選項,主要有6個選項,每個選項用逗號隔開,下面詳細說明每個選項的含義:
<pre>default:使用預設選項
noauto:當執行mount -a(即掛載全部檔案系統,開機時會執行此命令)時忽略此條記錄,也就是跟沒寫進fstab一樣
user:允許特定的使用者來掛載,如user=bob,則只能允許bob這個使用者來掛載
owner:允許物理裝置的擁有者來掛載
comment:為fstab維護程式提供一些說明
nofail:在掛載失敗後,忽略此錯誤,繼續往下執行
</pre>
因為我們沒有特殊要求,所以就選default,但nofail這個選項後面我會用到,暫且不表.所以前四個域可以寫成這樣子:
<pre>#C盤
/dev/sda2 /media/c ntfs default
#D盤
/dev/sda3 /media/d ntfs default
</pre>
或者:
<pre>#C盤 
UUID=908265F98265E466 /media/c ntfs default
#D盤 
UUID=98B6FE61B6FE3EF6 /media/d ntfs default
</pre>
5.第5個域是dump,dump這個命令執行備份操作,該域為0,表示執行dump操作時忽略該分割槽,如果為1,則表示執行dump時也會備份該分割槽.因為我們沒有備份的需求,所以該域設定為0,所以前五個域為:
<pre>#C盤
/dev/sda2 /media/c ntfs default 0
#D盤
/dev/sda3 /media/d ntfs default 0
</pre>
或者:
<pre>#C盤 
UUID=908265F98265E466 /media/c ntfs default 0
#D盤 
UUID=98B6FE61B6FE3EF6 /media/d ntfs default 0
</pre>
6.最後一個域是pass,不是passwd的pass,而是系統重啟時檢查分割槽正常與否時,該分割槽的檢查順序.根目錄所在檔案系統的passno是1,其他檔案分割槽為2.如果設定為0,則表示不檢查.我們的C盤和D盤不想讓Linux檢查,所以設定為0.
所以綜合以上步驟,我們可以寫出下面的完整的兩條記錄:
<pre>#C盤
/dev/sda2 /media/c ntfs default 0 0
#D盤
/dev/sda3 /media/d ntfs default 0 0
</pre>
或者:
<pre>#C盤 
UUID=908265F98265E466 /media/c ntfs default 0 0
#D盤 
UUID=98B6FE61B6FE3EF6 /media/d ntfs default 0 0
</pre>
按理來說這兩種形式都可以的,將任一種形式的兩條記錄新增到fstab檔案中,重新啟動系統,下次開啟Windows系統的分割槽時,應該就不需要輸入密碼了.

相關推薦

Linux通過修改fstab自動掛載Windows 分割槽

我電腦裝的是Windows和Linux雙系統,以前在Linux下,要開啟Windows系統的C盤或D盤的時候,總是要輸入密碼,很麻煩,而且麻煩了很長時間. 後來有一天浩哥看到了,說可以在Linux開機時自動掛載Windows分割槽的,修改/etc/fstab這個檔案,可以採

記錄linux通過對limits的設置優化系統性能

pgrep 目前 接下來 total 滿足 執行 獲取 linux下 第一個 系統中子進程繼承父進程的系統限制。只有以root用戶運行的進程能任意修改限制。其它進程不能增加硬限制值。這樣在一個session中登錄進程設置的硬限制值影響該session中的所有進程。 當要優化

SpringBoot熱部署和linux通過vim修改jar裡面的檔案

解決問題: 1、在專案測試或者部署後,經常會遇到需要更改一些配置檔案或者java類,這時使用SpringBoot熱部署可以快速的修改後重啟,方便開發測試; 2、在專案上線後,會遇到一些需要修改的地方,使用linux下的vim工具可以快速的修改已部署好的專案。 一、引入熱部署依賴 &l

linux【centos】nginx自動原始碼編譯安裝指令碼,以及通過service 啟動/停止/過載 nginx的服務指令碼

 第一:指令碼為nginx原始碼編譯安裝的指令碼,可以幫助使用者自動建立系統使用者“nginx”;可以使用者自己指定安裝路徑,配置檔案路徑,執行檔案路徑等; 第二:可以配置第二個指令碼使用,通過service服務來管理nginx。 [[email protect

linux通過mount掛載iscsi、ntfs、nfs詳解

通常伺服器本機自帶磁碟空間有限,都需要額外載入磁碟,可以採用mount方式把遠端的共享儲存磁碟載入進來,目前用過的有iscsi、ntfs、nfs三種類型一,mount掛載iscsi型別1,查詢下準備掛載的磁碟或者儲存器[[email protected] /]# i

Linux通過ioctl系統呼叫獲取和設定網路資訊

#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <sys/ioctl.h>#includ

Linux自動掛載Windows Samba共享目錄

環境: Windows 2008 R2+RHEL6U2說明:在配置oracle expdp備份策略時,發現伺服器上的空間有限,公司也不想增加這方面的開支,因此想到了將windows應用伺服器上富裕的空間拿來做為oracle的備份磁碟,在備份時將備份檔案儲存到伺服器和wind

Linux通過EXPECT指令碼自動執行ssh遠端連線

       由於經常需要從家裡連到實驗室的機器,但是中間需要一箇中轉,於是就需要連續兩次進行ssh操作以及輸入密碼。加上家裡網路不穩,經常會斷,就又得重新登入。輸入那麼一長串的東西特別麻煩。於是覺得應該寫一個指令碼來自動登入,這樣就可以帶來極大的方便。 1 expec

linux通過nfs搭建檔案伺服器,並實現掛載

今天做不成的事,明天也不會做好。 同學們,我們今天來學習在linux下搭建nfs檔案伺服器,並在linux和windows下進行掛載。最開始,專案的部署是和檔案放在一起的,後來,隨著訪問的人數增多,就需要把檔案單獨拿出來放到一個伺服器,這樣能

Linux通過find命令進行rm文件刪除的小技巧

ase test sysconfig ger sdn tun 執行過程 fun alt 我們常常會通過find命令進行批量操作。如:批量刪除舊文件、批量改動、基於時間的文件統計、基於文件大小的文件統計等。在這些操作其中,因為rm刪除操作會導致文件夾結構變化,

linux通過yum倉庫安裝mysql

linux mysql 倉庫 環境:Centos6.5查看centos版本:[[email protected]/* */ ~]# cat /etc/redhat-release CentOS release 6.5 (Final)1.查看是否安裝了mysql[[email 

LinuxSVN+多個Tomcat自動部署

mod .html 部署 update語句 hooks 參考 eba bsp auth 項目中都是jsp開發,所以用到Tomcat。 在我文章中也寫過多個Tomcat 的部署,具體可以參考:http://www.cnblogs.com/magmell/p/7045193.h

Linux通過vconfig配置vlan

strong str 都是 指定 ssa 註冊 chkconfig init add 初衷: 我在centos上面搭建了一個dhcp server,由於client發來的dhcp request是加了tag的,為了使dhcp server能夠正常response分給clie

Linux批量修改文件名(rename)

批量修改 rename1.rename命令批量修改文件名, 其實Linux下可以使用別的辦法來批量修改文件名, 不過rename實在太方便了比如把所有的表為cdb1_* 修改為cdb_*的在本目錄下只需要# rename ‘cdb1‘ ‘cdb‘ *以前都是寫個for循環來做...想想多傻啊, 呵呵ren

Linux通過源碼編譯安裝程序

安裝程序 configure 系統目錄 install 命令 com 需要 figure .com ASK: Linux下通過源碼編譯安裝程序(configure/make/make install的作用) configure Linux 平臺有各種不同的配置,安裝時需

linux通過軟連接實現訪問項目路徑外面的資源

技術 虛擬目錄 color 相關 上傳文件 eclipse 擔心 成功 tail 在javaweb項目開發中,圖片上傳是個比較常見的場景。一般都是在項目路徑下建個文件夾,然後上傳到該文件夾下;這樣這個圖片就可以和靜態資源一樣被直接訪問。這樣的好處就是訪問這圖

Linux通過rdesktop遠程windows主機

rdesktopLinux下使用rdesktop命令,可完美遠程windows主機。實驗環境如下:OS版本:elementaryos-0.4.1-stable.20170814-x64本機環境:物理機一般有的Linux發行版的軟件中心,都會有Remmina遠程工具,比如國產deepin OS,使用起來也很方便

linux mint 自動掛載windows的D盤和E盤

button gravity flow text 自動 file 執行 onclick logout linux mint 自動掛載windows的D盤和E盤 <div class="article_bar clearfix"> <

linux通過phpize為php在不重新編譯php情況安裝模塊memcache

memcache with tps emca 添加 pecl inux usr ron 通過phpize為php在不重新編譯php情況下安裝模塊memcache 1. 下載 wget http://pecl.php.net/get/memcache-2.2.4.tgz

linux (debian 8) 設置開機自動掛載

ont fda 軟件包 type debian 添加 ext image 51cto 首先,你的虛擬機得裝好debian的系統,並且iso鏡像的軟件包已經添加進去了(本教程全程在虛擬機實施) 第一步,要用有root權限的用戶登陸(我的是直接用root用戶登陸的) 第二步,創