修改fstab掛載分區和遠程目錄


一、掛載本地分區

某些時候當Linux系統下划分了新的分區后,需要將這些分區設置為開機自動掛載,否則,Linux是無法使用新建的分區的。

/etc/fstab 文件負責配置Linux開機時自動掛載的分區。

 

Windows的文件結構是多個並列的樹狀結構,最頂部的是不同的磁盤(分區),如:C,D,E,F等。

Linux的文件結構是單個的樹狀結構。最頂部的為根目錄,即/。在根目錄下,分為多個子目錄,包括/bin、/boot、/dev、/etc、/home、/lib、/media、/mnt、/opt、/proc、/root、/sbin、/tmp、/usr和/var等。

磁盤Linux分區都必須掛載到目錄樹中的某個具體的目錄上才能進行讀寫操作,而fstab正是負責這一配置。

顯然,根目錄是所有Linux的文件和目錄所在的地方,需要掛載上一個磁盤分區。

上面還提到,Linux分區交換也需要獨立使用一個分區,因此,安裝一個Linux至少需要兩個分區。

(事實上,只使用一個分區安裝Linux也是可能的,而且,如果電腦的物理內存足夠大,交換分區並不是必須的)

 示例:打開 /etc/fstab 文件

# subo vim /etc/fstab

默認情況下,fstab中已經有了當前的分區配置,內容可能類似:

# <file system> <mount point>   <type>         <options>              <dump> <pass>
proc                 /proc                   proc            defaults                      0         0
/dev/hda1       /                           ext3             errors=remount-ro     0         1
/swapfile         swap                    swap           defaults                      0          0
/dev/hdc         /media/cdrom0     udf,iso9660   user,noauto             0          0

由上面的內容可以看出,系統的 /dev/hda1 分區被掛載在根目錄,文件系統是ext3。

此外,還有proc、swap等特殊的“分區”,以及 /dev/hdc 被作為光驅掛載在了 /media/cdrom0

因此,如果希望將新分區 /dev/hda5 掛載在 /home/new 目錄下,則只需在fstab文件中加入一行:

/dev/hda5       /home/new               ext3    default   0       1

即可。

 

第一列 <file system>:可以是實際分區名,也可以是實際分區的卷標(Lable)。

如果磁盤是SATA接口,且有多個磁盤,則每個磁盤被標記為 /dev/hda 、 /dev/hdb、 /dev/hdc 等以此類推;而每個磁盤的分區被標記為 /dev/hda1、 /dev/hda2等。

如果磁盤是SCSI類型,則多個磁盤會被分別標記為 /dev/sda、/dev/sdb等等。分區同理。

如果使用標簽來表示,則格式如:lable=/

 

第二列 <mount point> :是掛載點。

掛載點必須為當前已經存在的目錄,為了兼容起見,最好在創建需要掛載的目標目錄后,將其權限設置為777,以開放所有權限。 

第三列<type> :為此分區的文件系統類型。

Linux可以使用ext2、ext3等類型,此字段須與分區格式化時使用的類型相同。

也可以使用 auto 這一特殊的語法,使系統自動偵測目標分區的分區類型。auto通常用於可移動設備的掛載。 

第四列 <options>:是掛載的選項,用於設置掛載的參數。

常見參數如下:

defaults: rw, suid, dev, exec, auto, nouser, and async.

auto: 系統自動掛載,fstab默認就是這個選項
noauto 開機不自動掛載
nouser 只有超級用戶可以掛載
ro 按只讀權限掛載
rw 按可讀可寫權限掛載
user 任何用戶都可以掛載
請注意光驅和軟驅只有在裝有介質時才可以進行掛載,因此它是noauto

第五列<dump>:是備份設置。

當其值設置為1時,將允許dump備份程序備份;設置為0時,忽略備份操作;

第六列<pass>:是fsck磁盤檢查設置。

其值是一個順序。當其值為0時,永遠不檢查;而 / 根目錄分區永遠都為1。其它分區從2開始,數字越小越先檢查,如果兩個分區的數字相同,則同時檢查。

當修改完此文件並保存后,重啟服務器生效。

 

二、掛載遠程目錄: 

linux掛載遠程目錄,有兩種方式:ssh和nfs;有兩種共享協議:samba和cifs

1.ssh方式
當我們需要管理一台遠程的linux服務器的時候經常使用的是比較安全的ssh。 

示例一:

以下是通過ssh掛在遠程目錄的方法:

~$ sudo apt-get install sshfs fuse
~$ sshfs <username>@<ipaddress>:/remotepath ~/remoteserv -o allow_other

若提示一下錯誤:

fusermount: option allow_other only allowed if 'user_allow_other' is set in /etc/fuse.conf

則在/etc/fuse.conf中添加user_allow_other

如需自動掛載,可以在/etc/fstab中添加如下代碼:

sshfs#username@ipaddress:/remotepath ~/remoteserv fuse user,_netdev,exec,reconnect,uid=1000,gid=1000,idmap=user,allow_other 0 0

如果掛載沒有效果,可以查看日志了,sshd的日志在:/var/log/auth.log:

Aug 8 11:05:21 localhost sshd[21595]: Authentication refused: bad ownership or modes for directory /remotepath

 此時一般是remotepath目錄的權限錯誤,一般該目錄的權限應為700或755,不能為77x。

示例二:unubtu客戶端

遠程共享: \\192.168.1.18\projects\android_releases

現在想將這個release的內容通過rsync同步到本地,那樣就不用每次去代碼都遠涉重洋進行copy了。

第一步就是要將這個遠程共享mount到本地,然后再在本地的文件夾之間進行同步。

如何mount呢?

mount的方式有兩種,smbfs和cifs,但是由於smbfs同Samba工具(如smb.conf,smbmount等)的耦合性很高,所以逐漸就被cifs替代了,但是出於兼容性的原因,現在在某些系統上還能通過smbfs選項進行掛載。

建議采用cifs方式掛載遠程共享文件夾。

Ubuntu 14.04默認不支持mount.cifs文件系統,需要安裝cifs-utils組件:

$ sudo apt-get install cifs-utils
$ sudo mount -t cifs //dfs.guyongqiangx.com/projects/android_releases /mnt 

以只讀方式掛載遠程共享目錄到本地:

$ sudo mount -t cifs //dfs.guyongqiangx.com/projects/android_releases android --verbose -o username=youraccount,password=xxx,ro 

以下是掛載成功后的df -h輸出信息:

$ df -h

 

示例三:centos客戶端

如果是centos,如果沒有cifs-utils組件,也需要安裝

yum install cifs-utils  #安裝cifs協議包

 

#列出遠程目錄

smbclient -L 192.100.9.165 -Uadministrator

掛載:

vim /etc/fstab

//192.100.9.165/youraccount/storage/sharefolder cifs defaults,username=administrator,password=16001007,uid=500,gid=500

 #安裝192.100.9.165 zhihuiwuxi目錄到本地/storage/samba  指定uid,gid(否則只有root對目錄有讀寫權限)

mount -a

 

  

2.nfs方式

示例一:centos服務器
服務器端: 172.21.10.68

~$ sudo apt-get install nfs-kernel-server portmap //安裝nfs portmap
~$ sudo vi /etc/exports //配置nfs
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)
#
#Add Next Line //feison
/home/useraccount/sharefolder *(rw,sync,no_root_squash,no_subtree_check) 

保存退出: :wq

~$ sudo service nfs restart //啟動nfs服務
~$ sudo service portmap start //啟動portmap服務

 客戶端:

~$ sudo apt-get install nfs-kernel-server
~$ sudo mount -t nfs 172.21.10.68:/home/youraccount/sharefolder ./yourLocalFolder
~$ sudo umount ./nfs

 

如果出現:mount: mount to NFS server 'p470-1' failed: RPC Error: Program not registered
是服務端的服務沒有啟動,重新啟動服務即可。

示例二:unubtu服務器

安裝服務:
sudo apt-get install portmap ##nfs服務需要的RPC支持
sudo apt-get install nfs-kernel-server ##nfs服務端
修改nfs共享配置文件:
sudo vim /etc/exports
添加如下共享路徑內容:
/mnt/disk1 *(insecure,rw,sync,no_root_squash)
/mnt/disk1: 需要設置共享的目錄,設置為共享之后,其它機器才可以進行遠程mount
*: 允許訪問的ip地址,*為所有ip均可訪問

其它參數:默認就行,具體的可以網上查看

 重啟服務:

sudo service rpcbind restart ##portmap服務
sudo service nfs restart #nfs服務,或者命令sudo /etc/init.d/nfs-kernel-server restart

重啟成功則nfs配置成功。

安裝nfs客戶端:

sudo apt-get install nfs-common ##nfs client
測試mount命令:
sudo mount -t nfs xxx.xxx.xxx.xxx:/mnt/disk1 /mnt/disk1

xxx.xxx.xxx.xxx:服務器的ip

/mnt/disk1:服務器的共享目錄

/mnt/disk1:客戶機的本地訪問目錄,需要提前創建好

客戶端,配置fstab文件:

sudo vim /etc/fstab
# 添加如下mount內容
xxx.xxx.xxx.xxx:/mnt/disk1 /mnt/disk1 auto rw,user,auto,exec,utf8 0 0
# 其它參數具體查看網上fstab文件參數說明

 

 

三、故障排除

如果掛載時,/etc/fstab中的參數寫錯,有可能出現不能啟動客戶端的情況。如以下提示:

cannot open access to console, the root account is locked
解決辦法:在live模式,在管理員模式下,修改/etc/fstab
用U盤安裝盤啟動系統,在選擇安裝語言界面,按ctrl+alt+F1,光標閃爍無法進入,
按ctrl+alt+F2,進入,輸入startx,是英文界面,用管理員身份打開/etc/fstab ,修改掛載的目錄。
比如:
# /dev/sda11 LABEL=Basic\040data\040partition
UUID=2c74def9-3622-4f4f-933a-669f9bcda846    /home   ext4   rw,relatime,data=ordered        0 2

 修改成:

# /dev/sda11 LABEL=Basic\040data\040partition
UUID=2c74def9-3622-4f4f-933a-669f9bcda846   /home   ext4     rw,relatime,data=ordered,x-systemd.device-timeout=60        0 2

 

保存,重啟,ok。
掛載選項的具體含義,參考第一節中的本地掛載。
 
參考:
https://blog.csdn.net/xyajia/article/details/79165655
https://blog.csdn.net/five3/article/details/50738241
https://www.cnblogs.com/metasequoia/p/4446553.html
http://blog.sina.com.cn/s/blog_1824c59320102xrsw.html
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM