Linux基礎管理——磁盤管理
阿新 • • 發佈:2018-01-15
color 完成 文件系統 備份 mbr nor images 掛載文件系統 系統屬性 1、設備文件
I/O Ports: I/O設備地址。
設備文件的使用:
通過將文件關聯至一個設備驅動程序,進而能夠跟與之對應硬件設備進行通信。 一切皆文件,所以磁盤的也是也是基於設備文件與之通信的:open(), read(), write(), close()
設備號碼:
主設備號:major number, 標識設備類型; 次設備號:minor number, 標識同一類型下的不同設備。
硬盤接口類型:
並行: IDE:133MB/s SCSI:640MB/s 串口: SATA:6Gbps SAS:6Gbps USB:480MB/s rpm: rotations per minute
磁盤設備的設備文件命名:
/dev/DEV_FILE SCSI, SATA, SAS, IDE,USB: /dev/sd; 虛擬磁盤:/dev/vd; 不同磁盤標識:a-z,aa,ab…/dev/sda, /dev/sdb, ...; 同一設備上的不同分區:1,2, .../dev/sda1, /dev/sda5;
2、磁盤結構
2.1、機械硬盤(HDD)
2.2、固態硬盤(SSD)和機械硬盤(HDD)
2.3、硬盤存儲術語及扇區結構
head:磁頭;
track:磁道;
cylinder: 柱面;
sector: 扇區,512bytes;
(1)早期扇區結構
(2)區位記錄磁盤扇區結構:ZBR(Zoned Bit Recording)
2.4、CHS和LBA
CHS:
采用24bit位尋址; 最大尋址空間8GB;
LBA(logical block addressing)
LBA采用48個bit位尋址 最大尋址空間128PB
註意:
由於CHS尋址方式的尋址空間在大概8GB以內,所以在磁盤容量小於大概8GB時,可以使用CHS尋址方式或是LBA尋址方式;在磁盤容量大於大概8GB時,則只能使用LBA尋址方式。
2.5、使用分區空間
設備識別; 設備分區; 創建文件系統; 標記文件系統; 在/etc/fstab文件中創建條目; 掛載新的文件系統;
2.5、磁盤分區的意義及分區類型
磁盤分區意義:
優化I/O性能 實現磁盤空間配額限制 提高修復速度 隔離系統和程序 安裝多個OS 采用不同文件系統
兩種分區方式:MBR,GPT
2.5.1、MBR
MBR:
Master Boot Record,1982年,使用32位表示扇區數,分區不超過2T; 按柱面
MBR分區結構:
硬盤主引導記錄MBR由4個部分組成: 主引導程序(偏移地址0000H--0088H):它負責從活動分區中裝載,並運行系統引導程序。 出錯信息數據區:偏移地址0089H--00E1H為出錯信息,0E2H--01BDH全為0字節。 分區表(DPT,Disk Partition Table):含4個分區項,偏移地址01BEH--01FDH,每個分區表項長16個字節,共64字節;為分區項1、分區項2、分區項3、分區項4 結束標誌字:偏移地址01FE--01FF的2個字節值為結束標誌55AA。
2.5.2、GPT分區
GPT:
GUID(Globals Unique Identifiers) partition table; 支持128個分區,使用64位,支持8Z(512Byte/block)、64Z (4096Byte/block); 使用128位UUID(Universally Unique Identifier) 表示磁盤和分區; GPT分區表自動備份在頭和尾兩份,並有CRC校驗位UEFI; (統一擴展固件接口)硬件支持GPT,使操作系統啟動
3、分區管理
3.1、圖形化
圖形化磁盤管理功能工具: 點擊“應用程序” ->“系統工具” ->“磁盤”; 執行命令gnome-disks
3.2、分區管理
列出塊設備:lsblk; 創建分區使用: fdisk 創建MBR分區; gdisk 創建GPT分區; parted 高級分區操作; partprobe-重新設置內存中的內核分區表版本;
3.3、parted命令
註意:parted的操作都是實時生效的,小心使用
語法:
parted [選項]... [設備 [命令 [參數]...]...]
示例:
parted /dev/sdb mklabel gpt|msdos parted /dev/sdb print parted /dev/sdb mkpart primary 1 200 (默認M) parted /dev/sdb rm 1 parted -l
3.3、分區工具:fdisk & gdisk
gdisk /dev/sdb:類fdisk 的GPT分區工具; fdisk -l [-u] [device...] 查看分區; fdisk /dev/sdb 管理分區;
子命令:
p 分區列表 t 更改分區類型 n 創建新分區 d 刪除分區 v 校驗分區 u 轉換單位 w 保存並退出 q 不保存並退出
查看內核是否已經識別新的分區: cat /proc/partations
同步分區表:
centos6通知內核重新讀取硬盤分區表: 新增分區用: partx -a /dev/DEVICE kpartx -a /dev/DEVICE -f: force 刪除分區用: partx -d --nr M-N /dev/DEVICE CentOS 5,7:使用partprobe partprobe [/dev/DEVICE]
4、文件系統管理
4.1、文件系統類型
Linux文件系統:ext2(Extended file system), ext3,ext4, xfs(SGI), btrfs(Oracle), reiserfs, jfs(AIX), swap 光盤:iso9660 Windows:FAT32, exFAT,NTFS Unix:FFS(fast), UFS(unix), JFS2 網絡文件系統:NFS, CIFS 集群文件系統:GFS2, OCFS2(oracle) 分布式文件系統: fastdfs,ceph, moosefs, mogilefs,glusterfs, Lustre RAW:未經處理或者未經格式化產生的文件系統
查前支持的文件系統:cat /proc/filesystems
4.2、創建文件系統
mkfs命令: (1) mkfs.FS_TYPE /dev/DEVICE ext4 xfs btrfs vfat (2) mkfs -t FS_TYPE /dev/DEVICE -L 'LABEL': 設定卷標
創建ext文件系統:
mke2fs: ext系列文件系統專用管理工具; -t {ext2|ext3|ext4} -b {1024|2048|4096} -L 'LABEL' -j: 相當於 -t ext3; mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3 -i #: 為數據空間中每多少個字節創建一個inode;此大小不應該小於block的大小; -N #:指定分區中創建多少個inode; -I 一個inode記錄占用的磁盤空間大小,128---4096; -m #: 默認5%,為管理人員預留空間占總空間的百分比; -O FEATURE[,...]:啟用指定特性; -O ^FEATURE:關閉指定特性;
文件系統標簽:
指向設備的另一種方法 與設備無關
blkid: 塊設備屬性信息查看; 語法: blkid [OPTION]... [DEVICE] -U UUID: 根據指定的UUID來查找對應的設備 -L LABEL:根據指定的LABEL來查找對應的設備
e2label:管理ext系列文件系統的LABEL e2label DEVICE [LABEL]
findfs :查找分區 findfs [options] LABEL=<label> findfs [options] UUID=<uuid>
tune2fs:
重新設定ext系列文件系統可調整參數的值; -l:查看指定文件系統超級塊信息;super block -L 'LABEL':修改卷標 -m #:修預留給管理員的空間百分比 -j: 將ext2升級為ext3 -O: 文件系統屬性啟用或禁用, –O ^has_journal -o: 調整文件系統的默認掛載選項,–o ^acl -U UUID: 修改UUID號
dumpe2fs:
塊分組管理,32768塊 -h:查看超級塊信息,不顯示分組信息
4.3、文件系統檢測和修復
常發生於死機或者非正常關機之後; 掛載為文件系統標記為“ no clean”; 註意:一定不要在掛載狀態下修復;
fsck: File System Check fsck.FS_TYPE fsck -t FS_TYPE -p: 自動修復錯誤 -r: 交互式修復錯誤 FS_TYPE一定要與分區上已經文件類型相同;
e2fsck:ext系列文件專用的檢測修復工具 -y:自動回答為yes -f:強制修復
5、掛載
掛載:
將額外文件系統與根文件系統某現存的目錄建立起關聯關系, 進而使得此目錄做為其它文件訪問入口的行為
註意:
掛載點下原有文件在掛載完成後會被臨時隱藏; 掛載點目錄一般為空; 事先存在;建議使用空目錄; 進程正在使用中的設備無法被卸載;
語法:
mount DEVICE MOUNT_POINT mount [-fnrsvw] [-t vfstype] [-o options] device dir
-t vsftype:指定要掛載的設備上的文件系統類型 -r: readonly,只讀掛載 -w: read and write, 讀寫掛載 -n: 不更新/etc/mtab,mount不可見 -a:自動掛載所有支持自動掛載的設備(定義在了/etc/fstab 文件中,且掛載選項中有auto功能) -L 'LABEL': 以卷標指定掛載設備 -U 'UUID': 以UUID指定要掛載的設備 -B, --bind: 綁定目錄到另一個目錄上 查看內核追蹤到的已掛載的所有設備 cat /proc/mounts
-o options:(掛載文件系統的選項),多個選項使用逗號分隔
async:異步模式 sync:同步模式,內存更改時,同時寫磁盤 atime/noatime:包含目錄和文件 diratime/nodiratime:目錄的訪問時間戳 auto/noauto:是否支持自動掛載,是否支持-a選項 exec/noexec:是否支持將文件系統上運行應用程序 dev/nodev:是否支持在此文件系統上使用設備文件 suid/nosuid:是否支持suid和sgid權限 remount:重新掛載 ro:只讀 rw:讀寫 user/nouser:是否允許普通用戶掛載此設備,/etc/fstab使用 acl:啟用此文件系統上的acl功能 loop: 使用loop設備
defaults:相當於rw, suid, dev, exec, auto, nouser, async
6、卸載命令
查看掛載情況
findmnt MOUNT_POINT|device
查看正在訪問指定文件系統的進程
lsof MOUNT_POINT fuser -v MOUNT_POINT
終止所有在正訪問指定的文件系統的進程
fuser -km MOUNT_POINT
卸載
umount DEVICE umount MOUNT_POINT
7、文件掛載配置文件
註意:使用mount -a 命令掛載/etc/fstab中的所有文件系統
/etc/fstab每行定義一個要掛載的文件系統: 1)要掛載的設備或偽文件系統; 設備文件; LABEL:LABEL=""; UUID:UUID=""; 偽文件系統名稱:proc, sysfs; 2)掛載點; 3)文件系統類型; 4)掛載選項:defaults; 5)轉儲頻率:0:不做備份 1:每天轉儲 2:每隔一天轉儲; 6)自檢次序: 0:不自檢; 1:首先自檢;一般只有rootfs才用1;
8、處理交換文件和分區
交換分區是系統RAM的補充。
8.1、基本設置
創建交換分區或者文件 使用mkswap寫入特殊簽名 在/etc/fstab文件中添加適當的條目 使用swapon -a 激活交換空間
交換分區的啟用與禁用:
啟用:swapon
swapon [OPTION]... [DEVICE] -a:激活所有的交換分區; -p PRIORITY:指定優先級 /etc/fstab:pri=value
禁用:swapoff [OPTION]... [DEVICE]
8.2、SWAP的優先級
可以指定swap分區0到32767的優先級,值越大優先級越高; 如果用戶沒有指定,那麽核心會自動給swap指定一個優先級,這個優先級從-1開始, 每加入一個新的沒有用戶指定優先級的swap,會給這個優先級減一; 先添加的swap的缺省優先級比較高,除非用戶自己指定一個優先級, 而用戶指定的優先級(是正數)永遠高於核心缺省指定的優先級(是負數); 優化性能:分布存放,高性能磁盤存放;
Linux基礎管理——磁盤管理