/etc/fstab
啟動Linux、mount、 fsck 指令等指令執行都都會用到fstab資訊,它提供的是系統上挂載裝置的靜态資訊,比如 mount -a 就會挂載 /etc/fstab 裡面指定的檔案系統。當執行mount -a時隻會挂載那些存在于/etc/fstab中的項目卻未挂載的,已經挂載的不受影響。
/etc/mtab 是相對動态的。記載目前系統已經裝載的檔案系統,包括一些作業系統虛拟檔案,這跟/etc/fstab有些不同。/etc/mtab檔案在mount挂載、umount解除安裝時都會被更新,時刻跟蹤目前系統中的分區挂載情況。當使用mount -n 時不會更新此檔案,是以在某些指令會隐藏相對挂載情況。此檔案在Centos7後變成了/proc/self/mounts的軟連結。
/proc/mounts
這個檔案是/proc/self/mounts的軟連結,/proc下面的檔案都是儲存在記憶體中的,是核心自動生成的。是以/proc/mounts比/etc/mtab檔案能更加真實的反映目前mount的情況。
Centos 6
Centos 7
使用mount -n 挂載後
可以通過比較/etc/fstab和/proc/mounts中的不同之處,得到被umount的裝置
變相進行跨分區的硬連結
如果使用mount -B進行目錄挂載目錄的時候,/etc/fstab下的格式必須這麼寫
/源目錄 /挂載目錄 none bind
在/etc/fstab中提定defaults時,将包含以下挂載選項
Centos6-(2.6.30核心以後)defaults:rw, suid, dev, exec, auto, nouser, async, relatime.
Centos7-defaults:rw, suid, dev, exec, auto, nouser, async, relatime
利用目錄挂載目錄特點,可以同一個磁盤分區分别進行不同的磁盤挂載選項。
可以對檔案建立檔案系統,也就是本地loop裝置
執行個體
#dd if=/dev/zero of=partfile bs=1M count=1024
可以建立成功,
同樣的有Superblock資訊哦
但是并不能進行分區操作哦
#mount -o loop /mnt/partfile /app/partloop/
可以進行磁盤檔案操作的
複制到其他機器也是可以進行挂載使用的
Centos 6預設系統隻有8個loop裝置,手動使用mknod(#mknod loop8 c 1 5)建立的第8個以上的loop裝置将會丢失,是以,如果想用更多的裝置,請按以下方式添加
修改/boot/grub/grub.conf,找到 kernel這一行,在行末端加入max_loop=數量
loop裝置如果需要開機挂載,需要在/etc/fstab按以下格式設定,
Centos6 必須要加上loop選項
/mnt/partfile /app/partloop ext4 defaults,loop 0 0
Centos7
與普通挂載沒什麼差別,注意檔案系統格式不要搞錯了。
/mnt/partfile /mnt/filesystem ext4 defaults 0 0
/etc/fstab格式
第一列:磁盤裝置檔案或者該裝置的Label或者UUID。強烈建議使用UUID形式,裝置名和Label都有可能發生變化。CD光牒沒有UUID
第二列:裝置的挂載點,就是你要挂載到哪個目錄下
第三列:磁盤檔案系統的格式。如果是目錄挂載目錄,則表示為none bind
第四列:檔案系統的參數
async/sync
設定是否為同步方式運作,預設為async
atime/noatime
是否每一次通路檔案與目錄都更新inode通路時間(access time)
diratime/nodiratime
是否每一次通路目錄都更新inode通路時間(access time)
auto/noauto
mount -a 的指令時,此檔案系統是否被主動挂載。預設為auto
exec/noexec
限制此檔案系統内是否能夠進行"執行x"的操作
dev/nodev
是否支援在此檔案系統上使用裝置檔案
suid/nosuid
是否允許SUID權限的存在
remount
重新挂載一個已經挂載了的檔案系統而不修改其挂載點,立即生效
user/nouser
是否允許普通使用者挂載此裝置
usrquota
啟用檔案系統支援磁盤配額使用者級模式
grpquota
啟用檔案系統支援磁盤配額組級模式
rw
是否以讀寫模式挂載
ro
是否以隻讀模式挂載
acl
啟用此檔案系統上的acl功能
loop
使用loop裝置
none bing
目錄挂載目錄時使用
relatime
按照檔案被修改的時間更改inode通路時間。也就是僅在檔案的修改時間
比通路時間新時才更新通路時間。
與 noatime 類似,但是可以讓 mutt 之類需要知道檔案在最後一次被修改後
是否被通路過的程式正常工作。
從 Linux 2.6.30 起,這是預設值(除非指定了 noatime)。
從 Linux 2.6.30 起,如果檔案的最後通路時間已超過24小時未更新,
也會被強制更新。
defaults
相當于rw, suid, dev, exec, auto, nouser, async, relatime
pri=數字
設定swap檔案的優先級,僅僅對swap分區有效果
第五列:能否被dump備份指令作用:dump是一個用來作為備份的指令。通常這個參數的值為0或者1
代表不要做dump備份
1
代表要每天進行dump的操作
2
代表不定日期的進行dump操作
第六列:是否檢驗扇區:開機的過程中,系統預設會以fsck檢驗我們系統是否為完整(clean狀态)。
不要檢驗
最早檢驗(一般根目錄會選擇)
1級别檢驗完成之後進行檢驗
建立額外的swap交換檔案
系統安裝好時候如果建立的swap分區小了,是無法進行擴容大。但是可以通過新增加一個swap檔案進行擴容。
準備一個磁盤分區或前面講到的loop裝置,(但是,用檔案建立的loop裝置swap檔案,性能肯定不如獨立的分區性能好)
将檔案系統格式化:編号為82的Linux swap。
使用#mkswap專用指令進行格式化
将此UUID寫入/etc/fstab下面,注意格式(如下圖)
先看看增加swap前的數值
使用指令# swapon -a生效
使用swapon -s 或#cat /proc/swaps檢視詳細的資訊,包括優先級(Priority),優先級數字越大的優先使用。
設定swap的優先級需要修改/etc/fstab,想哪個優先使用将設定數值大一些
将新設定生效,注意,一定嚴格步驟,以下2種方式都可以
#swapoff UUID=ad2786dd-6056-4ea6-ba6a-c2915bab280f
#swapoff /dev/sdb1
再重新挂載/etc/fstab中的swap即可
總結:
可以指定swap分區0到32767的優先級,值越大優先級越高。如果使用者沒有指定,那麼核心會自動給swap指定一個優先級,這個優先級從-1開始,每加入一個新的沒有使用者指定優先級的swap,會給這個優先級減一
先添加的swap的預設優先級比較高,除非使用者自己指定一個優先級,而使用者指定的優先級(是正數)永遠高于核心預設指定的優先級(是負數)
優化性能:分布存放,高性能磁盤存放
關于CD光牒的裝置号,編寫腳本的時候可以統一使用/dev/cdrom來通路
關于eject指令,可以使用來彈出光驅或磁盤。
實際應用場景,如果在管理非常多的主機的時候,發現其中有一台上面有一個磁盤壞的時候,可以将其上面的光驅彈出,以便立即發現變化的主機,進而準确定位。
eject 彈出光驅托盤
ejetc -t 收起光驅托盤
關于制作CD光牒ISO,最簡單的方式就是
cp /dev/cdrom file.iso
dd if=/dev/cdrom of=file.iso
本文轉自 ljpwinxp 51CTO部落格,原文連結:http://blog.51cto.com/191226139/2051185