使用Linux系統的過程中,有時候會涉及到對磁盤參數的修改,這些參數包括磁盤的名稱、盤符還有磁盤日志和其他磁盤運行時的參數。那麼怎麼Linux系統磁盤參數應該修改呢?
在Linux下面我們都知道可以用相應的檔案代表一個裝置,比如 /dev/sdb1代表sdb硬盤的第一個分隔槽,該裝置通過major和minor來標示對應代替的裝置
brw-rw—- 1 root disk 8, 0 5月 12 20:16 /dev/sda
brw-rw—- 1 root disk 8, 1 5月 12 19:48 /dev/sda1
brw-rw—- 1 root disk 8, 10 5月 12 19:48 /dev/sda10
brw-rw—- 1 root disk 8, 11 5月 12 19:48 /dev/sda11
brw-rw—- 1 root disk 8, 12 5月 12 19:48 /dev/sda12
brw-rw—- 1 root disk 8, 13 5月 12 19:48 /dev/sda13
brw-rw—- 1 root disk 8, 2 5月 12 19:48 /dev/sda2
brw-rw—- 1 root disk 8, 3 5月 12 19:48 /dev/sda3
brw-rw—- 1 root disk 8, 4 5月 12 19:48 /dev/sda4
brw-rw—- 1 root disk 8, 5 5月 12 19:48 /dev/sda5
brw-rw—- 1 root disk 8, 6 5月 12 19:48 /dev/sda6
brw-rw—- 1 root disk 8, 7 5月 12 19:48 /dev/sda7
brw-rw—- 1 root disk 8, 8 5月 12 19:48 /dev/sda8
brw-rw—- 1 root disk 8, 9 5月 12 19:48 /dev/sda9
root@qeesung-laptop:/media# ll /dev/sdb*
brw-rw—- 1 root disk 8, 16 5月 12 20:16 /dev/sdb
brw-rw—- 1 root disk 8, 17 5月 12 20:25 /dev/sdb1
brw-rw—- 1 root disk 8, 18 5月 12 20:18 /dev/sdb2
linux內核就是通過對應的major和minor來認識對應的設備的
device namemajorminor
/dev/sdb80-15
/dev/sdba816-31
mknod命令
這個命令主要是用來創建一個設備文件的(make block or character special files)
mknod [OPTION]。。. NAME TYPE [MAJOR MINOR]
其中類型主要有:
- b block塊設備
- c char字符設備
- p pipe管道設備
使用示例:
新建一個管道文件
#mknod pipeFile p
#echo this is a test line 》》 pipeFile
#cat pipeFile
--------------------------------------------------------------------------------
新建一個塊文件
#mknod blockFile b 8 100
--------------------------------------------------------------------------------
新建一個字符文件
#mknod charFile c 4 100
最終會有三個文件
brw-r–r– 1 root root 8, 100 5月 12 21:15 blockFile
crw-r–r– 1 root root 4, 100 5月 12 21:16 charFile
prw-r–r– 1 root root 0 5月 12 21:12 pipeFile|
--------------------------------------------------------------------------------
e2label命令
在linux下面,每一個分隔槽都可以指定一個對應的label用來標示這個分隔槽,這點好比windows下面的C盤D盤一樣。如果磁盤的分隔槽指定了label,那麼就會咋/media目錄下面按照label的名字掛載,如果沒有指定label,那麼將會按照分割槽的UUID在/media目錄下面掛載
在linux下面可以可以通過e2label命令該指定對應分隔槽的label是什麼,指定label有一個好處就是label不會隨著磁盤文件名的改變而改變,我們知道在linux下面磁盤的掛載順序決定了磁盤的文件名,比如你先掛載SATA磁盤1,那麼磁盤1的設備名字就是 /dev/sda,要是你在掛在SATA磁盤2滯後再掛載磁盤1,那麼磁盤1的磁盤文件就是/dev/sdb。。。但是就算不管磁盤文件名是怎麼變換的,對應的分隔槽label是不會改變的
使用e2label命令:
e2label /dev/sdb1 “newLabelName”
--------------------------------------------------------------------------------
tune2fs命令
tune2fs命令用途很大,下面是一些基本用法
- -l 相當於dumpe2fs -h 顯示分隔槽的superBlock內容
- -L 相當於e2label改變一個分隔槽的label
- -J將ext2文件格式轉換為ext3帶有日志的文件格式
具體更多用法還是man一下好了
--------------------------------------------------------------------------------
文件系統的自動掛載
我們可以通過更改在/etc/fstab下面的數據來改變系統每次開機自動掛載的文件系統,下面是/etc/fstab/文件裡面的東西:
這個例子裡面的文件系統掛在/home目錄下面,沒一行信息標示開機自動掛載的文件系統,每一項都以空格來區分,每一項的具體含義為:
- file system:對應的分隔槽,是UUID或者是label名字
- mount point:掛載點,一定必須是目錄,而且根目錄/一定要優先於所有文件系統掛載
- type:文件系統的類型
- options:文件系統的掛載參數,有:
arg1arg2描述
usernouser普通用戶是否可以掛載文件系統
asyncsync磁盤是否以異步的方式讀寫
autonoauto是否可以自動掛載,就是mount -a
rwro文件系統是只讀的還是可以讀寫的
suidnosuid是否支持suid/sgid的文件和目錄
- dump:標示是否對文件系統進行dump備份:0標示不做備份,1標示每天做備份,2標示不定期的做備份
- pass:用fsck來檢測文件系統是否有問題,0標示不檢測,1標示最先檢測(一般是根目錄),2表示需要檢測,只是在1檢測之後檢測!
現在假設我們需要對文件系統/dev/sdb1在開機的時候自動以只讀的方式掛載到/media/sdb1目錄下面,那麼我們就需要在/etc/fstab下面寫入;
/dev/sdb1 /media/sdb1 ext4 ro 1 2
接下來我們試一下mount -a,發現文件系統自動以只讀的形式掛載到了/media/sdb1目錄下面了,表明我們沒有寫錯
注意:要是你在沒有檢測自己是否新增的fstab裡面的條目書寫是否正確就匆匆的進行重啟,那麼就有可能開機無法成功而進入到單人模式之中,這個時候你就需要mount -n =o remount.rw /對根目錄重新掛載,然後我們再修改/etc/fstab文件。
以上就是Linux系統怎麼修改磁盤參數的介紹了,修改磁盤參數的命令還有很多,這裡就不一一列舉了。