2011年11月14日 星期一

硬碟與檔案系統

硬碟代號
IDE硬碟:
/dev/hdX,X為a,b,c
SCSI與SATA
/dev/sdX,X為a,b,c (部份SATA視驅動程式而定)
RAID或其他裝置,視驅動程式而定

分割區
在原有的硬碟裝置後面加上數字,如/dev/sda切了三個分割區:
/dev/sda1、/dev/sda2、/dev/sda3


dumpe2fs 觀察檔案系統 (dump filesystem information )
例如:
dumpe2fs /dev/sda2
dumpe2fs /dev/sda2 | grep "Block size"



格式化程式
mke2fs : ext2 ext3 的格式化程式
mke2fs -t ext4 /dev/sda1  //格式化為ext4的檔案系統


lsattr (顯示檔案隱藏屬性)
list file attributes on a Linux second extended file system 






掛接點
/etc/fstab
file system table  對應硬體與掛接的目錄
開機時及使用mount -a 相關指令會讀取此檔
例如以下檔案:

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    nodev,noexec,nosuid 0       0
# / was on /dev/sda2 during installation
UUID=7e632e4d-eb08-4b16-a2a4-5e8af9442972 /               ext4    errors=remount-ro 0       1
# swap was on /dev/sda1 during installation
UUID=d7e6d3f3-add0-4df3-b6d6-6da4870b3922 none            swap    sw              0       0

<file system>
  • 硬碟分區對應檔案,如/dev/hda1 ,
  • 或標籤代號如LABEL=/boot(必須使用e2label去定義標籤代號),
e2label 裝置名稱  新的Label名稱 
如:  e2label /dev/hdc6 "my_test"
  • 或使用UUID=7e632e4d-eb08-4b16-a2a4-5e8af9442972 
<mount point>
  • 掛載點,一定是目錄
<type>
  • 檔案系統類型
<options>掛接選項
  • async/sync 非同步/同步
    設定磁碟是否以非同步方式運作!預設為 async(效能較佳)
  • atime或noatime 讀取時是否更新檔案或目錄inode上的最後存取時間。
    此欄位只有較新版的才有支援 ,可使用relative自動判斷更新的時間
  • auto/noauto 自動/非自動
    當下達 mount -a 時,此檔案系統是否會被主動掛載。預設為 auto
  • rw/ro 可讀寫/唯讀
  • exec/noexec 可執行/不可執行
  • user/nouser 允許/不允許使用者掛載 (不允許使用者掛載較安全)
  • suid/nosuid 具有/不具有 suid 權限
  • usrquota 啟動 filesystem 支援磁碟配額模式
  • grpquota 啟動 filesystem 對群組磁碟配額模式的支援
  • sw swap專用
  • defaults  時具有 rw, suid, dev, exec, auto, nouser, async 等參數。 基本上,預設情況使用 defaults 設定即可!

<dump>
  • dump 是一個用來做為備份的指令, 0 代表不要做 dump 備份, 1 代表要每天進行 dump 的動作。 2 也代表其他週期的 dump 備份動作,
<pass>
  • 是否以 fsck 檢驗磁區:
  • 0 是不要檢驗, 1 表示最早檢驗(一般只有根目錄會設定為 1), 2 也是要檢驗,不過 1 會比較早被檢驗! 一般來說,根目錄設定為 1 ,其他的要檢驗的 filesystem 都設定為 2 就好了。
  • 某些 filesystem 是不需要檢驗的,例如記憶體置換空間 (swap) ,或者是特殊檔案系統例如 /proc 與 /sys 等等

參考資料:鳥哥的linux私房菜


檔案類型
- 一般檔案
d 目錄
l 連結
b block special (設備檔)  如:ls -l /dev/sda2
c character special  如:ls -l /dev/tty0
s socket 如: ls -l /dev/log

file <檔案>  //顯示檔案類型

建立連結
ln A B  //建立硬連結B,直接指到儲存區塊,必須在同一檔案系統下
ln -s A C //建立軟連結C,指到A的檔案名稱,不受檔案系統的限制


系統目錄
  • /bin    放置的是在單人維護模式下還能夠被操作的指令,可被root與一般帳號所使用
  • /boot   放置開機會使用到的檔案,包括Linux核心檔案以及開機選單與開機設定檔。 Linux kernel常用的檔名為vmlinuz,若使用grub開機管理程式, 則會有 /boot/grub/目錄
mount  指令
mount [-l]
mount [-t 檔案系統] [-L Label名] [-o 額外選項] \[-n]  裝置檔名  掛載點

-a  :依 /etc/fstab 的資料將所有未掛載的磁碟都掛載
-l  :輸入 mount 會顯示目前掛載的資訊。加上 -l 可增列 Label 名稱!
-t  :檔案系統種類來指定欲掛載的類型,如:ext2, ext3, vfat, reiserfs, iso9660(光碟格式),
      nfs, cifs, smbfs(此三種為網路檔案系統類型)
-n  :預設系統會將掛載的情況即時寫入 /etc/mtab 中,以利其他程式的運作。但在某些情況下(例如單人維護模式)為了避免問題,會刻意不寫入。此時要使用 -n 選項。
-L  :系統除了利用裝置檔名 (例如 /dev/hdc6) 之外,還可以利用檔案系統的標頭名稱(Label)來進行掛載。
-o  :後面可以接一些掛載時額外加上的參數!比方說帳號、密碼、讀寫權限等:
      ro, rw:       唯讀(ro) 或可讀寫(rw)
      async, sync:  同步寫入 (sync) 或非同步 (async) 的,預設為 async。
      auto, noauto: 允許此 partition 被以 mount -a 自動掛載(auto)
      dev, nodev:   是否允許此 partition 上,可建立裝置檔案? dev 為可允許
      suid, nosuid: 是否允許此 partition 含有 suid/sgid 的檔案格式?
      exec, noexec: 是否允許此 partition 上擁有可執行 binary 檔案?
      user, nouser: 一般來說,mount 僅有 root 可以進行,但下達 user 參數,則可讓一般 user 也能夠對此 partition 進行 mount 。
      defaults:     預設值為:rw, suid, dev, exec, auto, nouser, and async
      remount:      重新掛載
參考資料:鳥哥的linux私房菜














沒有留言:

張貼留言