磁盤管理(一)
本章節內容:
磁盤結構
分區類型
管理分區
管理文件系統
掛載設備
一、磁盤結構:
1、設備號碼:
主設備號:major number, 標識設備類型
次設備號:minor number, 標識同一類型下的不同設備
2、磁盤接口類型:
并行:IDE、SISC
串口:SATA 、SAS 、USB
rpm:rotatons、per minute
3、磁盤設備的設備文件命名:
IDE:/dev/hd
SISC:/dev/sda、/dev/sdb、…… (不同的設備,使用a-z)
(同一設備上,不同的分區,采用數字來命名區分,如:/dev/sda1、/dev/sda2……)
4、 磁盤結構及磁盤存儲:
如下圖,結構:磁臂、電機、扇區(secotr)\磁道(track)、磁頭(head)、盤片、柱面(cylinder)
(注:每個磁道有63個扇區,每個盤面有1024個磁道,每個磁盤最多有255個磁頭,每個扇區最多能存儲512個字節。柱面:每個盤面都有零磁道/扇區,每個盤片有兩面,因此每個盤片有兩個零磁道/扇區,每個磁盤有多個盤片,所以,磁盤的所有零磁道/扇區組成的立體為零柱面,其他柱面也是如此?。?/span>
二、分區類型:
1、首先了解為什么要分區?
A、 優化I/O性能
B、實現磁盤空間配額限制
C、提高修復速度
D、隔離系統和程序
E、安裝多個OS
2、磁盤的兩種分區方式:
MBR 、GPT
(1)MBR分區:采用32位表示扇區數,分區不超過2T。
0磁道0扇區:512bytes(446bytes為boot loader;64bytes為分區表(16bytes標示一個分區);2bytes為55aa)
支持最多4個主分區(3個主分區+1擴展分區[N個邏輯分區])
(2)GPT分區:最大支持128個主分區,使用64位,支持8Z(512bytes/block)和64Z(4096bytes/block)。
使用128位UUID 表示磁盤和分區GPT分區表自動備份在頭和尾兩份,并有CRC校驗位。
UEFI (統一擴展固件接口)硬件支持GPT。
3、查看硬盤分區信息:
A、命令lsblk
B、cat /proc/mounts
C、ls /dev/sd*
4、檢查磁盤是否分區:
5、備份磁盤和還原分區表:
備份:dd if=/dev/sda of=/root/mbr bs=1 count=512
還原:dd if=mbr of=/dev/sda
如下圖,查看備份出來的mbr分區表信息(注:或者在備份前也可以使用命令查看,#hexdump -C -n 512 /dev/sda)
6、清除分區表信息(寫零):
命令:dd if=/dev/zero of=/dev/sdc bs=1 count=64 skip=446 seek=446(跳過446字節)
7、清除boot loader信息(寫零):
命令:dd if=/dev/zero of=/dev/sdc bs=1 count=446
注:上面所提到的清除步驟,勿在系統安裝的磁盤上操作。
三:管理分區:
1、如何列出系統中的磁盤分區:(命令#lsblk)
命令:blkid查看分區的UUID、系統類型等信息
2、分區創建:
fdisk |
gdisk |
主要創建MBR分區,也支持GPT,但對于一塊磁盤最多只能管理15個分區 |
主要創建GPT分區,也可以將MBR分區轉換成GPT |
# fdisk /dev/sda(功能選項) |
# gdisk /dev/sda (功能選項) |
![]() |
|
|
|
![]() |
![]() |
注:parted高級分區操作(創建、復制、調整大小等等)
3、同步分區表命令:
CentOS5 |
CentOS6 |
CentOS7 |
|
新建分區同步 |
#partprobe /dev/DEVICE |
partx -a -n M:N /dev/DEVICE kpartx -a /dev/DEVICE -f: force |
#partprobe /dev/DEVICE |
刪除分區同步 |
#partprobe /dev/DEVICE |
partx -d -n M:N /dev/DEVICE 刪除一個分區 partx -d –nrN-M /dev/DEVICE 刪除多個分區 |
#partprobe /dev/DEVICE |
4、parted命令創建GPT分區:
#parted /dev/sdb mklabel gpt(parted /dev/sdb mklabel msdos[MBR])
# parted /dev/sdb mkpart primary 1 1024 (從1開始到1024分1G)
刪除分區:#parted /dev/sdb rm 1 (1為分區的編號)
注:parted的操作都是實時生效的,小心使用
四、管理文件系統:
1、什么是文件系統:
文件系統是操作系統用于明確存儲設備或分區上的文件的方法和數據結構;即在存儲設備上組織文件的方法。操作系統中負責管理和存儲文件信息的軟件結構稱為文件管理系統,簡稱文件系統。
從系統角度來看,文件系統是對文件存儲設備的空間進行組織和分配,負責文件存儲并對存入的文件進行保護和檢索的系統。具體地說,它負責為用戶建立文件,存入、讀出、修改、轉儲文件,控制文件的存取,安全控制,日志,壓縮,加密等。
2、文件系統類型:
Linux文件系統: ext2, ext3, ext4, xfs(SGI), btrfs(Oracle), reiserfs, jfs(AIX), swap(交換分區)、光盤(iso9660)
Windows:fat32, ntfs
Unix: FFS(fast), UFS(unix), JFS2
網絡文件系統:NFS, CIFS
集群文件系統:GFS2, OCFS2(oracle)
分布式文件系統:ceph, moosefs, mogilefs, glusterfs, Lustre
RAW:未經處理或者未經格式化產生的文件系統
3、文件系統類型分類:
根據其是否支持"journal"功能:
日志型文件系統: ext3, ext4, xfs, …
非日志型文件系統: ext2, vfat
文件系統的組成部分:
內核中的模塊:ext4, xfs, vfat
用戶空間的管理工具:mkfs.ext4, mkfs.xfs,mkfs.vfat
Linux的虛擬文件系統:VFS
查前支持的文件系統:cat /proc/filesystems
4、創建文件系統:
(1)、mkfs命令:
使用格式有:mkfs.ext2 、mkfs.ext3、 mkfs.ext4、 mkfs.xfs 、mkfs.btrfs 、mkfs.vfat
如下圖:
使用選項:
-t FSTYPE[DEVICE]:ext2 ext3 ext4
即:mkfs.ext2=mkfs -t ext2
-L :設置分區卷標
#mkfs.ext4 /dev/sda2 -L ‘卷標名稱’
(2)、mke2fs命令:管理格式化ext系列的文件系統。
#mke2fs -t {ext2|ext3|ext4} /dev/sda3
或 -j: 相當于-t ext3
mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3
5、ext系列文件系統的管理工具:
(1)、mke2fs命令:ext系列文件系統專用管理工具
-b {1024|2048|4096}
-L 'LABEL'
-i #: 為數據空間中每多少個字節創建一個inode;此大小不應該小于block的大小
-N #:為數據空間創建個多少個inode
-I 一個inode記錄大小128—4096
-m #: 默認5%,為管理人員預留空間占總空間的百分比
-O FEATURE[,…]:啟用指定特性
-O ^FEATURE:關閉指定特性
例題:選項-O的使用,如下圖關閉指定特性日志功能:
(2)blkid系統分區信息查詢:
A、blkid:塊設備屬性信息查看
blkid[OPTION]… [DEVICE]
-U UUID: 根據指定的UUID來查找對應的設備
-L LABEL:根據指定的LABEL來查找對應的設備
B、e2label:管理ext系列文件系統的LABEL
# e2label DEVICE [LABEL]
C、findfs:查找分區
findfs[options] LABEL=<label>
findfs[options] UUID=<uuid>
(3)tune2fs:重新設定ext系列文件系統可調整參數的值
-l:查看指定文件系統超級塊信息;super block
-L 'LABEL':修改卷標
-m #:修預留給管理員的空間百分比
-j: 將ext2升級為ext3
-O: 文件系統屬性啟用或禁用,-O ^has_journal
-o: 調整文件系統的默認掛載選項,-o ^acl
例題:啟用分區的日志功能,如下圖:
-U UUID: 修改UUID號(此處可以通過命令產生隨機UUID:#uuidgen)
(4)dumpe2fs:
查看superblock:dumpe2fs /dev/sda3
-h:查看超級塊信息(分組信息),分區用分組管理
6、文件系統的檢測與修復:
常發生于死機或者非正常關機之后;掛載為文件系統標記為“dirty”
fsck: File System Check
fsck.FS_TYPE
fsck -t FS_TYPE
-a: 自動修復錯誤
-r: 交互式修復錯誤
注意: FS_TYPE一定要與分區上已經文件類型相同;
e2fsck:ext系列文件專用的檢測修復工具
-y:自動回答為yes
-f:強制修復
五:管理掛載設備:
1、什么是掛載和卸載:
掛載:將額外文件系統與根文件系統某現存的目錄建立起關聯關系,進而使得此目錄做為其它文件訪問入口的行為。
卸載:為解除此關聯關系的過程
2、掛載條件與特殊:
掛載點目錄一般為空
掛載點下原有文件在掛載完成后會被臨時隱藏
3、掛載和卸載命令:
進程正在使用的設備是無法被卸載的。
把設備關聯掛載點:mount /PATH/TO/dir
卸載時:umount /PATH/TO/dir
4、掛載方法:
A、mount /dev/sda3 /mnt/sda3
B、mount -L ‘backup’(卷標名) /mnt/sda3
C、mount -U ‘UUID號’ /mnt/sda3
5、掛載后的操作:
A、查看掛載情況:findmnt /mnt/sda3
B、查看正在訪問指定文件系統的進程:losf /mnt/sda3或fuser /mnt/sda3
C、終止所有正在訪問指定的文件系統的進程:fuser –km /mnt/sda3
6、mount命令:(注:mount掛載使用所相應的選項達到的效果都不是永久的,機器一旦重啟將丟失。)
A、使用格式:mount [-fnrsvw] [-t vfstype] [-o options] device dir
B、常用選項:
-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
C、-o的常用選項:
-o options:(掛載文件系統的選項),多個選項使用逗號分隔
async:異步模式
sync:同步模式,內存更改時,同時寫磁盤
atime/noatime:包含目錄和文件
diratime/nodiratime:目錄的訪問時間戳
auto/noauto:是否支持自動掛載,是否支持-a選項
exec/noexec:是否支持將文件系統上運行應用程序
dev/nodev:是否支持在此文件系統上使用設備文件(dev:mkdir /mnt/sda3/cdrom ;mknod cdrom b 11 0;mount /dev/sda3/cdrom /media/)
suid/nosuid:不否支持suid和sgid權限
remount:重新掛載
ro:只讀
rw:讀寫
user/nouser:是否允許普通用戶掛載此設備,默認管理員才能掛載
acl:啟用此文件系統上的acl功能(在CentOS6上系統安裝完成后新分出來的分區是不啟用acl的,此處雖然可以掛載時生效啟用acl,但不是永久有效的,建議還是用tune2fs -o acl /dev/sda3 )
Defaults:相當于rw, suid, dev, exec, auto, nouser, async
演示:分區,格式,掛載
分區:
格式化:
分區掛載:
原創文章,作者:Aaron_wang,如若轉載,請注明出處:http://www.www58058.com/40200