1 / 52

Linux 基礎學習

Linux 基礎學習. Chapter 9 磁碟檔案系統 VBird 2005/08/12. 課程目標. 瞭解硬碟硬體架構與檔案系統; 認識 EXT2/EXT3 與所謂日誌式檔案系統; 在 Linux 環境下,進行磁碟的分割、格式化與掛載等任務 虛擬記憶體的處理與建置. 內容. 認識硬碟與磁碟分割槽 認識 EXT2 檔案系統 (filesystem) 日誌式檔案系統的運作 (EXT3 為例 ) Linux 檔案系統的支援與掛載 檔案類型及連結檔 (link file) 磁碟的分割、格式化、檢驗與掛載 磁碟參數修訂 設定開機掛載

lotta
Télécharger la présentation

Linux 基礎學習

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Linux 基礎學習 Chapter 9 磁碟檔案系統 VBird 2005/08/12 Linux基礎--磁碟檔案系統

  2. 課程目標 • 瞭解硬碟硬體架構與檔案系統; • 認識 EXT2/EXT3 與所謂日誌式檔案系統; • 在 Linux 環境下,進行磁碟的分割、格式化與掛載等任務 • 虛擬記憶體的處理與建置 Linux基礎--磁碟檔案系統

  3. 內容 • 認識硬碟與磁碟分割槽 • 認識 EXT2 檔案系統 (filesystem) • 日誌式檔案系統的運作(EXT3 為例) • Linux 檔案系統的支援與掛載 • 檔案類型及連結檔 (link file) • 磁碟的分割、格式化、檢驗與掛載 • 磁碟參數修訂 • 設定開機掛載 • 虛擬記憶體 (Swap) 的建置 Linux基礎--磁碟檔案系統

  4. 認識硬碟與磁碟分割槽 • 認識實體硬碟: Linux基礎--磁碟檔案系統

  5. 認識硬碟與磁碟分割槽(續) • 認識實體硬碟(續):物理組成: • 磁頭(head):固定在機械手臂上,做單方向的移動,且機械手臂上有多個磁碟; • 磁區(Sector):最小的物理儲存量,一個磁區為512 Bytes; • 磁柱(Cylinder):硬碟盤的 sector 排成一圈,即為磁柱。磁柱為磁碟分割槽的最小單位; • 硬碟容量的粗估:Cylinder x Head x Sector x 512 Bytes; • 正常操作:硬碟開機後,盡量不可進行移動。 Linux基礎--磁碟檔案系統

  6. 認識硬碟與磁碟分割槽(續) • 在 Linux 下的磁碟代號: • IDE • IDE 1 master & slave: /dev/hda & /dev/hdb • IDE 2 master & slave: /dev/hdc & /dev/hdd • SCSI or USB Hard disk • /dev/sda, /dev/sdb…. • IDE 1 master 的 • 第一個 primary partition : /dev/hda1 • 第一個 logical partition : /dev/hda5 • 特別留意 /boot 所在磁區,最好在 1024 磁柱之前(尤其是 lilo 使用者) Linux基礎--磁碟檔案系統

  7. 認識硬碟與磁碟分割槽(續) • x86 架構的 IDE 硬碟在 Linux 之磁碟分割特色: • 硬碟的第零軌為 MBR ,MBR 內含: • Partition table ,預設有4 個 partition 的資訊空間,稱為 primary 或 extended ,但是最多僅有1 個 extended • Boot Loader:開機管理程式,諸如選單,具有 point 的功能,且可預先載入系統的 filesystem。 • Partition 的類型: • 預設保留的 partition tables 內的類型: • Primary 的代號最多到4 號; • Extended 可以繼續分割成為 logical partitions • Extended partition 分割表: • Extended 的 partition table 資訊存放在 extended 的磁區,且此磁區為連續性的,最好將 extended 放置於最後面 • 最大的 logical number 在 SCSI 為 15 ,而 IDE 介面則為63 (指 ID ) Linux基礎--磁碟檔案系統

  8. 認識 EXT2 檔案系統 • 檔案系統:filesystem • 作業系統僅認識自己支援的磁碟格式(filesystem); • 一個 partition 預設僅能被格式化成為某一種 filesystem,所以,我們常常將 partiton 稱為一個 filesystem。 • Linux 預設支援的檔案系統很多,包括: • Traditional File System • ext2 (i-node base), minix, MS-DOS/VFAT • Journaling File System(日誌式) • ext3, ReiserFS: 相當適合較小的檔案, NTFS, IBM’s JFS, SGI’s XFS • Network File System Formats • Network File System (NFS), Server Message Block (SMB) Linux基礎--磁碟檔案系統

  9. 認識 EXT2 檔案系統(續) • EXT2 檔案系統: • 為 Linux 最傳統的檔案系統; • 為 inode base 的 filesystem,內含至少: • Superblock:整體 filesystem 記錄區; • inode table:紀錄檔案、目錄權限與時間參數; • Block area:記錄檔案實際內容區塊; • 當一個 EXT2 的 filesystem 被建立時(format),就已經定義好 inode table 與 block area ; • 在 EXT2 的每個檔案至少應該會佔用一個 inode 與一個 block: • inode:記錄檔案的屬性 • block :記錄檔案的內容 Linux基礎--磁碟檔案系統

  10. 認識 EXT2 檔案系統(續) • inode 記錄的資訊: • 一個 inode 的大小預設為 128 Bytes; • 該檔案的擁有者與群組(owner/group); • 該檔案的存取模式(read/write/excute); • 該檔案的類型(type); • 該檔案建立或狀態改變的時間(ctime)、最近一次的讀取時間(atime)、最近修改的時間(mtime); • 該檔案的容量; • 定義檔案特性的旗標(flag),如 SetUID...; • 該檔案真正內容的指向 (pointer); • 所以,檔案讀取時,會先讀取 inode 的內容,找到 block area 的號碼,才去讀取檔案內容。 • 若檔案太大,佔用的 block 太多,導致一個 inode 無法記錄完全,則系統會自動再分配一個 inode 給該檔案使用。 Linux基礎--磁碟檔案系統

  11. 認識 EXT2 檔案系統(續) • 檔案與目錄的 inode 與 block 差異: • 檔案: • inode 紀錄上一頁所提到的資訊: • block 則記錄檔案的實際內容資料; • 檔名呢?檔名並不在此記錄喔! • 目錄: • inode 與檔案相同,記錄上一頁提到的權限資訊; • block 則記錄此目錄下的檔名與 inode 關連性。 • 瞭乎?目錄所屬的 block 才會記錄檔名! • 每個目錄內一定都會有. 與.. 兩個目錄存在。 • 根目錄(/)的上層目錄在哪裡? • ex> ls -lai /  看一下 inode 與檔名的對應先! Linux基礎--磁碟檔案系統

  12. 認識 EXT2 檔案系統(續) • 檔案的讀取(以 /etc/crontab 為例): Linux基礎--磁碟檔案系統

  13. 認識 EXT2 檔案系統(續) • EXT2 檔案系統的先天問題: • Block : • 一個 Block 僅能含有一個檔案,所以 block 大小將會影響到硬碟的空間浪費問題; • 目前支援的 block 為 1024/2048/4096三種容量; • block 太大損耗容量大;太小,讀取效率差,故設計時,需配合主機的使用型態來考量; • Inode : • 一個檔案至少會使用掉一個 inode ,所以 ext2 的 filesystem 能夠容納多少檔案數,與 inode 數量有關; • 一般來說, 4KB 容量配給 1 個 inode 即可。 Linux基礎--磁碟檔案系統

  14. 認識 EXT2 檔案系統(續) • EXT2 檔案系統的先天問題:(續) • 關於檔名: • 檔名最長 255 字元,完整檔名最長 4096 字元 • 關於單一檔案: • 若 block size=1024,最大為16GB • 若 block size=4096,最大為 2TB • 關於整個 partition : • 若 block size=1024,最大為 2TB • 若 block size=4096,最大為16TB Linux基礎--磁碟檔案系統

  15. 認識 EXT2 檔案系統(續) • 一組連續的 block group (可視為 partition)含有: • Superblock • number of free/occupied inode and block • number of block and inode • Information of file system use, 掛載時間等等 • a valid bit, 0 is mounted, 1 is umount: 當系統重新開機時,若發現 valid bit 設定為0,則開始進行磁碟校正 • Group Description: 記錄 何處開始紀錄資料 • Block bitmap: 記錄那個 block 被使用/沒被使用 • Inode bitmap: 記錄那個 inode 被使用/沒被使用 • inode table • data blocks Linux基礎--磁碟檔案系統

  16. 認識 EXT2 檔案系統(續) • 一組連續的 block group 含有:(續) Linux基礎--磁碟檔案系統

  17. 認識 EXT2 檔案系統(續) • 使用 dumpe2fs 指令讀取 ext2 檔案系統: • ex> dumpe2fs /dev/hda1 • 建立一個檔案時: • 根據 inode bitmap / block bitmap 的資訊,找到尚未被使用的 inode 與 block , 進而將檔案的屬性與資料分別記載進 inode 與 block ; • 將剛剛被利用的 inode 與 block 的號碼 (number) 告知 superblock、inode bitmap、block bitmap 等,讓這些 metadata 更新資訊。 Linux基礎--磁碟檔案系統

  18. 日誌式檔案系統的運作 • 檔案系統的變動 (File system transactions): • 每個 file system (可視為一個 partition)基本上,都會擁有一個 database 來記錄 data 的種種變更,稱為 metadata。 • 當檔案被更動時,兩個步驟會被執行(參考前一頁檔案的建立) • 檔案本身的內容與屬性資料; • 系統的 metadata (系統的 indexing information) • 不一致 (inconsistent) 的狀態: • 當一個檔案被記錄時,1)先會針對檔案本身來變更,2)再告知 file system 更新 indexing 。 • 若 1 完畢,但系統發生問題,無法繼續 2 ,則發生所謂的 inconsistent ,此時系統需要 repaired ! • 可利用 fsck 檢查磁碟的錯誤與 inconsistent Linux基礎--磁碟檔案系統

  19. 日誌式檔案系統的運作(續) • 檔案系統的非同步運作(asynchronously): • 當系統讀取了某一個檔案, 則該檔案所在的區塊資料會被載入到記憶體當中; • 若這些區塊的資料被改變時,剛開始資料僅有主記憶體的區塊資料會被改變, 而且在緩衝區當中的區塊資料會被標記為『 Dirty 』,這個時候磁碟實體區塊尚未被修正; • 這些『 Dirty 』區塊的資料必需回寫到磁碟當中, 以維持磁碟實體區塊上的資料與主記憶體中的區塊資料的一致性。 • 可利用 sync 來讓檔案由主記憶體回填至硬碟中。 • 最大的優勢是速度較快! • 但是,卻又相當容易造成前一頁提到的不一致狀態。 Linux基礎--磁碟檔案系統

  20. 日誌式檔案系統的運作(續) • EXT2 發生不一致狀態的處理方式: • 若系統發生錯誤時, ext2 必須要將整個 filesystem 進行檢查,因為並沒有檔案關連的 information 在此檔案系統中。 • 日誌式檔案系統(journaling): • 檔案寫入的動作: • 當系統要寫入一個檔案的時候,會先在日誌記錄區塊中紀錄:某個檔案準備要寫入磁碟了; • 開始寫入檔案的權限與資料; • 開始更新 metadata 的資料; • 完成資料與 metadata 的更新後,在日誌記錄區塊當中完成該檔案的紀錄。 • 發生不一致的狀態後: • 由於有 journal 存在,則系統僅會針對 journal 當中記錄的檔案進行檢查,速度較快! Linux基礎--磁碟檔案系統

  21. 日誌式檔案系統的運作(續) • 日誌式檔案系統: • EXT3: • 最早由 Red Hat 發展,是 ext2 的升級版本,重點是增加了 journaling 的區塊,使能夠使用日誌式檔案系統的優點; • 完整的支援 ext2 檔案系統,所有在 ext2 的 Linux 磁碟功能(quota, permission)均可完整支援; • 但原本 ext2 的先天缺點,也承接了下來~ • Reiserfs: • 打破一個 block 僅有一個檔案的限制; • 磁碟的使用率較高,相當適合擁有大量小檔案的系統(例如BBS); Linux基礎--磁碟檔案系統

  22. 日誌式檔案系統的運作(續) • ReiserFS • 關於 ext2 的問題,在於磁碟空間的浪費太大!故而 reiserfs 目的在改善空間浪費的問題。 • 目前 reiserfs 的 block 均為 4096 bytes • 所有的小檔案均集中記錄在同一個 block 中; • inode 在格式化時並不會規劃,而是需要時才會自動產生。所以空間的使用會比較有彈性。 • Reiserfs 檔案讀取較為快速,因為使用 binary tree 的平衡之故 • 但是,需要較多的 processing power,且待讀完檔案後,需要 rebalance。 • 整個 partition 與 file 最大可達 16TB。 Linux基礎--磁碟檔案系統

  23. Linux 檔案系統的支援與掛載 • Linux 所有支援的檔案格式主要有: • 傳統檔案系統:ext2 / minix / MS-DOS / FAT (用 vfat 模組) / iso9660 (光碟)等等; • 日誌式檔案系統: ext3 / ReiserFS / Windows' NTFS / IBM's JFS / SGI's XFS • 網路檔案系統: NFS / SMBFS • 貴公的 Linux 支援的檔案系統查閱: • /lib/modules/`uname -r`/kernel/fs • /proc/filesystems Linux基礎--磁碟檔案系統

  24. Linux 檔案系統的支援與掛載(續) • Linux File system directories • 必須遵守 File System Hierarchy standard (FHS) 與 Linux Standard Bse (LSB) 的標準 • FHS 標準:http://www.pathname.com/fhs • 第一層 / 之下 • 第二層 /usr/ 與 /var/ • 不可與 / 分離的目錄: • /etc, /bin, /sbin, /dev, /lib 等等 Linux基礎--磁碟檔案系統

  25. Linux 檔案系統的支援與掛載(續) • 檔案系統的使用: • 檔案系統 (filesystem) 必須要掛載之後才能被 Linux 系統所使用 • 透過『掛載點』將 filesystem 掛載該『點』之下; • 掛載點為目錄; • 所有在該目錄後的次目錄,都屬於該 filesystem; • 查閱 partition 的容量: • df [-ihkmT] • 查閱某個目錄下剩下的容量: • df -h /etc • 查閱目錄下,檔案的總容量: • du [-smka] • 查閱根目錄下所有子目錄佔的容量: • du -sm /* Linux基礎--磁碟檔案系統

  26. Linux 檔案系統的支援與掛載(續) • Linux 系統使用 filesystem 需考量: • 主機的用途(file server? Application server?) • 多人少使用? • 主機擁有多少硬碟空間? • 分割時的考量: • Size of swap partition • Processor speed and main memory size • Standalone computer guidelines • File server guidelines • Computer server guideline Linux基礎--磁碟檔案系統

  27. Linux 檔案系統的支援與掛載(續) • 虛擬記憶體的容量: • 一般設定 256 MB 應該已足夠 • 以前通常建議 2 倍的 RAM 或者是實體 RAM + 40 MB • 千萬不要沒有 swap • 一個 swap 最大 2GB,最多支援 8 個; • 記憶體與硬碟的關係: • Linux 系統會建立很多的動態緩衝區 (dynamic buffers) 來快取硬碟的資料,因此,RAM 的大小比 CPU 的速度還要重要; • 為了加快 Linux 的速度,檔案存取時會有 read ahead 與 delay write 的機制,讓資料暫時先在記憶體當中,而非與硬碟同步。 • 因前一個機制,故您不可隨意將 Linux 不正常關機。 Linux基礎--磁碟檔案系統

  28. 檔案類型及連結檔 (link file) • Linux File type: • Normal files: • ASCII texts, executable programs, graphics files • Directories: • 主要含有檔名/inode的資訊, • 至少包含 . 與 .. • Device files: • 除了 Network card 之外,其他裝置皆為檔案 • Links: 分 hard link 與 symbolic link。 • Sockets: 兩個本地端 process 進行 data exchange • FIFOs: 僅能進行單向 data exchange,也是 prcesses 有關 Linux基礎--磁碟檔案系統

  29. 檔案類型及連結檔 (link file)(續) • Link file: • Hard link : • 只是在某個目錄下新增一個該檔案的關連資料而已 • 該檔案的屬性 (ls -l) 之 link 數會多一個; • 原則上,硬碟的空間及 inode 均不會被損耗,因為資料是新增在某目錄下的一個 inode 與檔名關連性。 • Hard link 的限制: • 不能跨 Filesystem; • 不能 link 目錄。 • Symbolic link: • 建立一個獨立的檔案, 而這個檔案會讓資料的讀取指向他 link 的那個檔案內容(類似 Windows 的捷徑功能) • 與一般檔案一樣,會用掉 inode 與 block ; • block 內容為目標檔案的檔名,佔用的容量就是檔名長度; Linux基礎--磁碟檔案系統

  30. 檔案類型及連結檔 (link file)(續) • Hard link 與 Symbolic link 的差異: • Hard link 利用的是 filesystem 的特性,因此無法進行跨 filesystem 與目錄的連結,但是 symbolic link 就沒有這個問題 • Hard link 只是多一個目錄底下的檔名關連性資料,若刪除一個 hard link ,其實原本的資料還是存在的(沒有更動到 block area 與 inode 的資料); • Symbolic link 只是一個具有『指向』功能的捷徑,因此,原始檔案消失後,該 symbolic link file 就無法被開啟。 • 兩者均以 ln 指令來達成; • hard link: ln source destination • symbolic link: ln -s source destination Linux基礎--磁碟檔案系統

  31. 檔案類型及連結檔 (link file)(續) • 練習: • 將 /etc/crontab 複製到 /tmp 底下,製作 /tmp/crontab 的 hard link (crontab.hd) 及 symbolic link (crontab.so),刪除 /tmp/crontab 後,查閱兩個 link file 是否可以被開啟? cd /tmp cp -a /etc/crontab . du -sb ; df -i . ln crontab crontab.hd du -sb ; df -i . ls -il crontab* ln -s crontab crontab.so ls -li crontab* du -sb ; df -i . rm crontab ; cat crontab.hd crontab.so Linux基礎--磁碟檔案系統

  32. 磁碟的分割、格式化、檢驗與掛載 • 建立一個磁碟 (filesystem) 的基本流程: • 對磁碟進行分割,以建立可用的 partition ; • 對該 partition 進行格式化(format),以建立系統可用的 filesystem • 若想要仔細一點,則可對剛剛建立好的 filesystem 進行檢驗 • 在 Linux 系統上,需要建立掛載點 ( 亦即是目錄 ),並將他掛載上來; • 基本考量: • 分割槽的用途?要多大?用什麼 filesystem? • inode 與 block 的大小(size)? • 主要仍與主機用途有關啦! Linux基礎--磁碟檔案系統

  33. 磁碟的分割、格式化、檢驗與掛載(續) • 磁碟的分割: fdisk [-l] 裝置代號 • 說明: • 裝置代號為整顆硬碟,例如 /dev/had,不是分割槽 /dev/hda1 • -l 僅為列出該裝置的目前存在的 filesystem ;若沒有加裝置名稱,則 fdisk 會將系統中所有可以分析到的裝置均列出 • fdisk 軟體內容使用指令: • m :說明指令 • p :列出所有的已存在的 partition • d :刪除一個 partition • n :新增一個 partition • q :不儲存離開 (測試時常使用) • w :儲存 partition table 後離開 Linux基礎--磁碟檔案系統

  34. 磁碟的分割、格式化、檢驗與掛載(續) • fdisk -l /dev/hda 輸出範例: Disk /dev/hda: 20.5 GB, 20520493056 bytes 255 heads, 63 sectors/track, 2494 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes(一個 cylinder 大小) Device Boot Start End Blocks Id System /dev/hda1 * 1 765 6144831 83 Linux /dev/hda2 766 1147 3068415 83 Linux /dev/hda3 1148 1274 1020127+ 82 Linux swap /dev/hda4 1275 2494 9799650 5 Extended /dev/hda5 1275 2494 9799618+ 83 Linux Linux基礎--磁碟檔案系統

  35. 磁碟的分割、格式化、檢驗與掛載(續) • fdisk 操作環境的說明 • 以 root 的身份進行硬碟的 partition 時,最好在單人維護模式 • 以 fdisk 修改了某硬碟的 partition table 後,若該硬碟某個 partition 還在使用,則核心可能無法完整載入 partition table • 將該硬碟的所有 partition 卸載,重新 fdisk 即可; • 重新將該系統 reboot 即可(僅有單顆硬碟時) • 雖然單顆硬碟最大的邏輯磁區可以到達 63 號,但並非所有的 Linux distribution 都會將所有的邏輯磁區對應的磁碟代號都寫入系統當中,故有時需手動以 mknod 建置磁碟裝置代號。 • mknod 將在本章節後續介紹。 Linux基礎--磁碟檔案系統

  36. 磁碟的分割、格式化、檢驗與掛載(續) • 練習: • 將目前系統上所有的硬碟 partition 都列出來; • fdisk -l • 查閱目前的硬碟狀態中,是否有空出的未配置空間?若有的話,請將該未配置空間分割成一塊可用的 partition。並觀察該 partition 的類型 (primary/Extended/Logical) Linux基礎--磁碟檔案系統

  37. 磁碟的分割、格式化、檢驗與掛載(續) • 磁碟分割槽的格式化:mkfs • mkfs 僅是一個整合指令,他會額外取用 mkfs.ext2 / mkfs.ext3 / mkfs.reiserfs / mkfs… • ext2/ext3 檔案系統建議直接使用 mke2fs 指令; • mke2fs [-bicLj] 裝置名稱 • -b : 設定 block 大小,目前有 1024, 2048, 4096 bytes 三種; • -i : 多少容量給予一個 inode • -c : 檢查磁碟錯誤,僅下達一次 -c 時,會進行快速讀取測試;如果下達兩次 -c -c 的話,會測試讀寫(read-write),會很慢~ • -L : 後面可以接表頭名稱 (Label),這個 label 是有用的~ • -j : 本來 mke2fs 是 EXT2 ,加上 -j 後,會主動加入 journal 而成為 EXT3。 Linux基礎--磁碟檔案系統

  38. 磁碟的分割、格式化、檢驗與掛載(續) • 假設將 /dev/hda9 格式化成 ext3 的範例: • block size 為 4096 bytes; • inode 分配,為每 8192 bytes 給予一個 inode • 該 filesystem 的 type 為 ext3 • 該 filesystem 的 Label 為 ext3test • mke2fs -j -b 4096 -i 8192 -L “ext3test” /dev/hda9 • 練習: • 將上一小節以 fdisk 建立出來的 partition 格式化為 ext3,且 label 設為 geego 其餘自訂。 • mke2fs -j -L “geego” /dev/hda?? • 將做完成的 filesystem 詳細資訊叫出來察看: • dumpe2fs /dev/hda?? Linux基礎--磁碟檔案系統

  39. 磁碟的分割、格式化、檢驗與掛載(續) • 磁碟檢驗:fsck [-AtCary] 裝置名稱 • 參數: • -t : fsck 可以檢查好幾種不同的 filesystem • ls -l /sbin/fsck* • -A : 依據 /etc/fstab 的內容,將所有的裝置都掃瞄一次 • 通常開機過程中就會執行此一指令 • -r : 讓使用者決定是否需要修復 • -y : 讓 fsck 在檢驗到錯誤時,直接答覆 y ; • -C : 在檢驗的過程當中,使用一個長條圖顯示進度 • 環境說明: • 檢驗完畢後,會在該 filesystem 下自動產生 lost+found 目錄 • 執行 fsck 時, 被檢查的 partition 務必不可掛載到系統上 • 請將上小節建立的 filesystem 檢驗其硬碟 Linux基礎--磁碟檔案系統

  40. 磁碟的分割、格式化、檢驗與掛載(續) • /lost+found (ext2/ext3 only) • 執行完 fsck 之後,若系統發現有不正常的檔案,則會將該檔案/目錄移動到此目錄下。 • fsck 開始檢驗磁碟檢驗完畢的代號: • 0 no errors • 1 file system errors corrected • 2 system should be rebooted • 4 file system errors left uncorrected • 8 operational error • 16 usage or syntax error • 32 fsck canceled by user request • 128 shared library error Linux基礎--磁碟檔案系統

  41. 磁碟的分割、格式化、檢驗與掛載(續) • 磁碟掛載: • mount • mount -a • mount [-tonL] 裝置名稱代號 掛載點 • 參數: • -a :依照 /etc/fstab 的內容將所有相關的磁碟都掛上來! • -n :掛載資訊不寫入 /etc/mtab 檔案; • -L :利用 partition 的表頭名稱 ( Label ) 來進行掛載喔! • 最好為您的 partition 取一個在您系統當中獨一無二的名稱 • -t : 您的 Linux 支援的檔案格式,就寫在這裡吧!若沒有加 -t 參數 • 主動以 /etc/filesystems 這個檔案及 • /proc/filesystems 內的檔案系統格式嘗試掛載。 Linux基礎--磁碟檔案系統

  42. 磁碟的分割、格式化、檢驗與掛載(續) • 磁碟掛載: mount -o 參數內容 • ro, rw 為唯讀(ro) 或可讀寫(rw) • async, sync 為同步寫入 (sync) 或非同步 (async) • auto, noauto 能否被以 mount -a 自動掛載(auto) • dev, nodev 能否建立裝置檔案? dev 為可允許 • suid, nosuid 可否含有 suid/sgid 的檔案格式? • exec, noexec 可否擁有可執行 binary 檔案? • user, nouser 是否允許此 partition 讓 user 執行 mount • defaults • 預設值為:rw, suid, dev, exec, auto, nouser, and async • remount • 重新掛載,這在系統出錯,或重新更新參數時,很有用! Linux基礎--磁碟檔案系統

  43. 磁碟的分割、格式化、檢驗與掛載(續) • 磁碟掛載環境說明: • 需先建立 mount point (目錄) • 若該 mount point 目錄下已經存在某些檔案,則當該目錄被當成掛載點後,原本的檔案將暫時被『隱藏』起來而無法使用(並非被刪除!) • /etc/filesystems 與 /proc/filesystems 與自動嘗試掛載有關; • /etc/mtab 與 /proc/mounts 與目前已掛載的磁區有關 • 能否掛載某 filesystem 的 type ,與 Linux OS 支援的檔案系統有關 (/lib/modules/`uname -r`/kernel/fs) • 練習: • 將剛剛建立的 filesystem 掛載至 /mnt/geego 目錄下 • mount -t ext3 /dev/hda? /mnt/geego • mount -t ext3 -L “geego” /mnt/geego Linux基礎--磁碟檔案系統

  44. 磁碟的分割、格式化、檢驗與掛載(續) • 磁碟掛載其他說明: • 卸載使用: umount [裝置/掛載點] • mount -a 可參考 /etc/fstab 來主動進行掛載 • 若發生: device is busy 的字樣: • 表示該 filesystem 正在被使用,請找出相關的程序,關閉後,才可卸載 • 您的工作目錄可能正好在該 filesystem 目錄下,請離開即可; • 可利用下列指令來掛載『某目錄』到某目錄下: • mount --bind 原始目錄 目標目錄 • mount --bind /home /tmp/home • df Linux基礎--磁碟檔案系統

  45. 磁碟的分割、格式化、檢驗與掛載(續) • 中文磁區的掛載 (windows): • mount -t vfat -o iocharset=cp950 /dev/hda1 /mnt/win98 • mount -t vfat -o iocharset=cp950 /dev/sda1 /mnt/usb • NTFS 計畫: • Linux-NTFS Project: http://linux-ntfs.sourceforge.net/ Linux基礎--磁碟檔案系統

  46. 磁碟參數修訂 • mknod 裝置名稱 [bcp] [Major] [Minor] • 參數: • b :設定裝置名稱成為一個周邊儲存設備檔案,例如硬碟等; • c :設定裝置名稱成為一個周邊輸入設備檔案,例如滑鼠/鍵盤等 • p :設定裝置名稱成為一個 FIFO 檔案; • Major :主要裝置代碼; • Major :次要裝置代碼; • Linux 透過取用裝置代號來使用該裝置, • 裝置的主要、次要代碼都是有意義的(請查閱 /dev) 硬碟代號 Major Minor /dev/hda 3 0~63 /dev/hdb 3 64~127 /dev/hdc 22 0~63 /dev/hdd 22 64~127 Linux基礎--磁碟檔案系統

  47. 磁碟參數修訂(續) • e2label [裝置名稱] [新的Label名稱] • 以 Label 來掛載檔案系統: • 優點: • 不論硬碟代號怎麼變,不論您將硬碟插在那個 IDE 介面 (IDE1 或 IDE2 或 master 或 slave 等),由於系統是透過 Label ,所以,磁碟插在那個介面將不會有影響。 • 缺點: • 如果插了兩顆硬碟,剛好兩顆硬碟的 Label 有重複的,那就慘了~ 因為系統會無法判斷那個磁碟分割槽才是正確的! Linux基礎--磁碟檔案系統

  48. 磁碟參數修訂(續) • tune2fs [-jlL] [裝置代號] • 參數: • -j :將 ext2 的 filesystem 轉換為 ext3 的檔案系統; • -l :類似 dumpe2fs -h 的功能~將 superblock 內的資料讀出來~ • -L :類似 e2label 的功能,可以修改 filesystem 的 Label 喔! • 練習:請修改剛剛建立的 filesystem 的Label 成為 fc4ext3 • tune2fs -L “fc4ext3” /dev/hda? Linux基礎--磁碟檔案系統

  49. 磁碟參數修訂(續) • hdparm [-icdmXTt] 裝置名稱 (危險指令,請勿模仿~) • 參數: • -i : 以核心功能測試的硬碟資訊。可能與實際硬碟資訊不同; • -c : 設定硬碟在 PCI 介面間的傳輸模式為 32-bit (32位元)存取模式 • -d : 設定是否啟用 dma 模式, -d1 為啟動, -d0 為取消; • -m : 設定同步讀取多個 sector 的模式。設定 16 是合理的! • -X : 設定 UtraDMA 的模式,UDMA 的模式值加 64 即為設定值。 • 33 MHz DMA mode 0~2 (X64~X66) • 66 MHz DMA mode 3~4 (X67~X68) • 100MHz DMA mode 5 (X69) • -T :測試暫存區 cache 的存取效能 • -t :測試硬碟的實際存取效能 (較正確!) • hdparm -d1 -c1 -X68 /dev/hda • hdparm -Tt /dev/hda Linux基礎--磁碟檔案系統

  50. 設定開機掛載 • 開機自動掛載: /etc/fstab (共有六個欄位) • 裝置代號或 Label 名稱 • 掛載點 (目錄) • 檔案格式 • 掛載時下達的參數 • dump 備份指令的參考,若為 0 則表示以 dump 備份時,該 partition 不備份 • fsck 的檢驗順序,當系統開機時,若此值為 0 表示不檢驗, 1 較早被檢驗(一般給 /),其他則設定 2 即可。 • 練習:將剛剛建立的 filesystem 寫入 /etc/fstab 中: • /dev/hda? /mnt/hda? ext3 defaults 1 2 • mount -a Linux基礎--磁碟檔案系統

More Related