linux磁盤管理
現在市面上硬碟主要為兩種:機械式硬碟 和固态硬碟(ssd)
機械式硬碟 同心圓劃分成多個track磁道,每個磁道上有一定數量的扇區(secotr),每個盤面上編号相同的磁道組成了柱面(cylinder) 每個扇區的大小為512bytes mbr模式下0磁道上0扇區為master boot record主引導扇區 前446bytes:存放了bootloafer引導加載器,啟動磁盤中的作業系統 接着的64bytes:存放磁盤中的檔案系統分區表,每16bytes辨別一個分區,是以mbr最多隻能認4個分區,若超過4個分區需使用擴充分區,在擴充分區中标注若幹個邏輯分區。 剩餘的2bytes用于結束标志 55 aa 識别硬碟在linux系統中的檔案:/dev/sd【a-z】 不同的硬碟最後标注的字母不同 /dev/sda /dev/sdb 同一硬碟上的不同分區 最後标注的數字不同:/dev/sda1 /dev/sda2 1-4用于标注主或擴充分區 5以上用于标注邏輯分區(由擴充分區中劃分的) 裝置檔案是一種特殊的檔案 分為塊裝置檔案和字元裝置檔案 塊裝置檔案:存取機關為資料塊,随機存取 字元裝置檔案:存取機關為字元,線性存取 分區:分割存儲空間為多個小空間,每個空間可以獨立使用檔案系統 fdisk,parted, sfdisk 分區工具:fdisk 格式 fdisl 【option】硬碟檔案名 管理子指令: p:顯示 n:建立 d:删除 t:修改分區id l:列出所有支援的分區類型id w:儲存并退出 q:放棄儲存并退出 m:獲得幫助 分區大小可以用數值和機關确定,不必計算柱面 建立完成後,檢視核心是否已經識别新的分區 cat /proc/partitions 有三個指令可以讓核心讀取磁盤分區表: centos 5: partprobe [device] centos6,7 partx partx device 顯示裝置的分區 partx -a device 向核心添加分區資訊,已有的重複送出會報錯 partx -a -n m:n device向核心添加指定的分區資訊,避免添加已有的。 kpartx指令: kpartx -af device linux檔案系統管理 檔案系統:編輯位址有自己的索引,便于計算機管理。 linux使用vmfs(虛拟檔案系統)統一各類檔案系統的接口 linux:ext2,ext3,ext4,reiserfs,xfs,btefs,swap CD光牒:iso9660 windows:fat32,ntfs unix:ffs,ufs,jfs,jfs2 (1)日志型檔案系統 ext3 在磁盤空間專門開辟一個日志區放中繼資料,帶中繼資料所對應的資料庫寫完後将中繼資料寫到中繼資料區。這樣當在寫資料時,發生錯誤需要自檢時可以直接在日志區尋找發生錯誤的中繼資料,而不需要周遊所有資料區 (2)swap交換 每個程序都自認為實體記憶體都為自己所用,一旦程序使用過大記憶體造成記憶體耗盡。這時候需要将記憶體中暫時不使用的資料寫到磁盤的swap分區中,以騰出實體記憶體空間。待需要這批資料時再寫回實體記憶體。 建立檔案系統 在分區上執行格式化(進階格式化) 要使用某種檔案系統,滿足兩個條件: 核心中:支援此種檔案系統 使用者空間:有檔案系統管理工具 建立工具:mkfs (make filesystem) mkfs -t type device mkfs.type device ext系列檔案系統的專用管理工具: mke2fs [option]... device -t {ext2|ext3|ext4} -b {1024|2048|4096} -l 'label' -j: mke2fs -t ext3 -i #:為inode指定位元組數 -n #:為檔案系統配置設定多少個inode -m #: 預留磁盤空間占據多大百分比的空間為後期管理使用; -o feature[,...] 開啟某些特性 -o ^feature:關閉此特性 blkid指令:檢視分區資訊 blkid device label, uuid, type 檔案系統屬性檢視及調整工具 e2label:e2lable device [label] 管理裝置或者分區的卷标 帶卷标名則為設定 不帶卷标名則是檢視功能 tune2fs 顯示ext系列檔案系統的屬性,或調整其屬性 格式: tune2fs [-c max_mounts_count] [-e errors_behavior] [-g group] [-i interval[d|m|w]] [-j] [-j journal_options] [-l] [-m reserved_blocks_percent] [-o [^]mount_options[,...]] [-r reserved_blocks_count] [-u user] [-c mount_count] [-l volume_label] [-m last_mounted_dir] [-o [^]feature[,...]] [-e extended-option[,...]] [-t last_check_time] [-u uuid] [ -i new_inode_size ] device -l 顯示超級塊中的資訊:顯示整個檔案的屬性及布局等相關資訊 -l 修改卷标名字 -m # :調整預留給管理者的後期管理空間的百分比 -j:ext2的檔案系統更新為ext3且不影響原有資料 -o [^] feature[,...]: 調整分區特性 -o [^] mount-options[,...]: 設定其預設挂載選項 async: 異步i/o sync: 同步i/o noatime/atime: 是否更新通路時間戳,建議noatime auto/noauto: 是否能夠被mount -a選項自動挂載; diratime/nodiratime: 是否更新目錄的通路時間戳; exec/noexec:是否允許執行其中的二進制程式; _netdev: 在網絡裝置啟用之前禁止嘗試挂載網絡裝置 remount: 重新挂載 acl: 啟用facl 檔案通路控制清單 ro:挂載為隻讀 rw:挂載為可讀寫 user/nouser: 是否允許普通使用者挂載此裝置 dump2fs: 顯示ext系列整個檔案系統的布局結構及超級塊資訊 -h:僅顯示超級塊資訊 檔案系統檢測: fsck: filesystem check fsck -t type fsck.type -a: 自動修複錯誤 -r: 互動式修複錯誤 -f: 強制檢測 e2fsck:ext系列檔案系統專用的檢測修複工具; -y: 自動回答為“yes” -f:force 檔案系統的挂載和使用 kernel --》 rootfs(分區) 擁有:bin,sbin,etc,lib,lib64,dev,tmp,proc,sys) 核心啟動後便能找到跟檔案所在的分區/, 其他分區的若要使用必須直接或間接的挂載到/根檔案系統下的目錄 将額外檔案系統與根檔案系統目錄下的現存的目錄相關聯,使該目錄成為額外檔案系統的通路入口。這樣的行為成為挂載 解除安裝是取消檔案系統和根檔案下目錄的關聯 挂載點如果有檔案,則挂載後其内部原有的檔案會被隐藏解除安裝後重新出現,建議使用空檔案 挂載方法: mount:通過讀取/etc/mtab檔案來顯示目前檔案系統所有已經挂載的裝置 mount -a :自動挂載/etc/fstab檔案中的支援自動挂載的檔案系統 mount [options] [-o options] device mount_point [options]:指令選項 [-o options]:挂載選項 device:要挂載的裝置 1.裝置檔案 /dev/sda5 2.卷标: -l ‘label’ 3.uuid: -u 'uuid' 4.檔案系統名稱 mount_point 多為檔案目錄 常用選項: -t type :檔案系統的類型 -r 以隻讀方式挂載 -w 以讀寫的方式挂載 -n 挂載并更新/etc/mtab -b綁定目錄至另一個目錄上 -o 挂載選項: async:異步模式 sync:同步模式任何資料在記憶體處理完後馬上寫回磁盤 atime/noatime:是否更新通路時間戳 auto/noauto:是否允許此裝置被自動更新 exec/noexec:是否允許執行此檔案系統上的應用程式 dev/nodev:是否支援在此裝置上使用裝置檔案; suid/nosuid:是否允許設定suid權限 remount:重新挂載 ro:隻讀權限 rw:讀寫權限 user/nouser: 是否允許普通挂載此裝置; acl:是否支援此裝置上使用facl; defaults:rw, suid, dev, exec, auto, nouser, and async
umount:解除安裝指令
# umount device
# umount mount_point
檢視正在通路指定挂載點的程序:
# fuser -v mount_point
終止所有正在通路指定的挂載點的程序:
# fuser -km mount_point
交換分區:
free指令:
檢視memory和swap的使用狀态
-m: 以mb為機關
-g: 以gb為機關
mkswap:建立交換分區
mkswap [option] device
-l 'label'
swapon:啟用交換分區
swapon [option] [device]
-a: 激活所有交換分區
-p priority: 設定其優先級;
swapoff:禁用交換分區
swapoff [option] [device]
檔案系統等空間占用資訊的檢視工個:
df: disk free 檢查檔案系統的磁盤空間占用情況
-h: human-readable
-i: inode數量
-p: 以posix相容的格式輸出
du: disk usage 檢視檔案或目錄所占的大小
-s: summary
檔案系統相關挂載配置檔案:/etc/fstab
每行定義一個檔案系統;
要挂載的裝置或僞檔案系統 挂載點 檔案系統類型 挂載選項 轉儲頻率 自檢次序
要挂載的裝置:
裝置檔案、label=、uuid=、僞檔案系統名稱
挂載選項:
defaults
轉儲頻率:
0: 不轉儲
1: 每天轉儲
2: 每隔一天轉儲
自檢次序:
0:不自檢
1:首先自檢,通常隻有/才為1
2:
...
檔案系統上的連結檔案:
硬連結:
兩個路徑指向同一個inode
不能對目錄進行;
不能跨分區進行
指向同一個inode的多個不同路徑; 建立檔案的硬連結會增加inode的引用計數;删除硬連結僅是删除其一個通路路徑,隻到最後一個路徑被删除;
符号連結:
連結檔案的資料指向另一個檔案路徑;
可以對目錄進行;
可以跨分區;
指向的是另一個檔案路徑;而非inode;
對檔案建立符号連結不會增加其引用計數;删除原檔案,符号連結檔案也将無法;
ln [-s] src dest
-s:symbolic link
-v:verbose
練習:建立一個10g的檔案系統,類型為ext4,要求開機可自動挂載至/mydata目錄
1.先建立10g的檔案系統
發現核心已經自己識别到該分為檔案系統
2.格式化其類型為ext4
3.讓系統核心識别該分區并加入為開機會自動挂載配置的檔案/etc/fstab中