一、硬盤基礎知識及分區類型
1、磁盤結構
設備文件
I/O Ports: I/O 設備地址 一切皆文件: open(), read(), write(), close()
設備類型:
塊設備:block,存取單位“塊”,磁盤 字符設備:char,存取單位“字符”,鍵盤 設備文件:關聯至一個設備驅動程序,進而能夠跟與之對應硬件設備進行通信 設備號碼: 主設備號:major number, 標識設備類型 次設備號:minor number, 標識同一類型下的不同設備
硬盤接口類型
并行: IDE :133MB/s SCSI :640MB/s 串口: SATA :6Gbps SAS :6Gbps USB :480MB/s rpm: rotations per minute
設備文件
磁盤設備的設備文件命名:/dev/DEV_FILE IDE: /dev/hd IDE: 第一個IDE口:主、從 /dev/hda, /dev/hdb 第二個IDE口:主、從 /dev/hdc, /dev/hdd SCSI, SATA, SAS, USB: /dev/sd 不同設備:a-z /dev/sda, /dev/sdb, ... 同一設備上的不同分區:1,2, .../dev/sda1, /dev/sda5
硬盤存儲術語
head:磁頭 track:磁道 cylinder: 柱面 secotr: 扇區,512bytes CHS 尋址 512*63*1024*256LBA尋址
2、磁盤分區
磁盤分區的優勢: ? 優化I/O 性能 ? 實現磁盤空間配額限制 ? 提高修復速度 ? 隔離系統和程序 ? 安裝多個 個OS ? 采用不同文件系統
分區
兩種分區方式:MBR ,GPT MBR: Master Boot Record ,1982年,使用32位表示扇區數, 分區不超過2T 如何分區:按柱面0磁道0扇區:512bytes 446bytes: boot loader 64bytes :分區表 16bytes: 標識一個分區 2bytes: 55AA 4 個主分區;3 主分區+1 擴展(N 個邏輯分區)
GPT分區
GPT:GUID patition table 支持128個分區使用64位,支持8Z(512Byte/block)64Z (4096Byte/block) 使用128位UUID區表示磁盤和分區GPT分區表自動備份在頭和尾兩份,并有CRC 校驗位 UEFI ( 統一擴展固件接口) 硬件 支持GPT,使操作系統啟動
GPT分區結構
EFI部分又可以分為4個區域:EFI信息區(GPT頭)、分區表、GPT分區、備份區域
二、管理分區
列出塊設備
blkid
分區工具fdisk和gdisk
? fdisk 創建MBR 分區,也支持GPT,對于一塊硬盤,最多只能管理15分區 ? gdisk 創建GPT分區 fdisk /dev/sdb gfisk /dev/sdb 類fdisk 的GPT 分區工具 # fdisk -l [-u] [device...] 查看磁盤及分區信息 子命令: p 分區列表 t 更改分區類型 n 創建新分區 d 刪除分區 w 保存并退出 q 不保存并退出
同步分區表
查看內核是否已經識別新的分區:
# cat /proc/partitions
通知內核重新讀取硬盤分區表
centos 6 新增分區用 partx -a -n M:N /dev/DEVICE kpartx -a /dev/DEVICE -f: force 刪除分區用 partx -d -n M:N /dev/DEVICE centos6: –nr N-M CentOS 5,7: 使用partprobe partprobe [/dev/DEVICE]
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
三、文件系統及管理
文件系統類型
Linux 文件系統: ext2, ext3, ext4, xfs (SGI ), btrfs(Oracle ), reiserfs, jfs (AIX ), swap光盤: :iso9660 Windows :fat32, ntfsUnix: FFS (fast ), UFS (unix ), JFS2 網絡文件系統:NFS, CIFS 集群文件系統:GFS2, OCFS2 (oracle) 分布式文件系統:ceph, moosefs, mogilefs, glusterfs,Lustre RAW :未經處理或者未經格式化產生的文件系統
文件系統分類
根據其是否支持"journal" 功能:
日志型文件系統: ext3, ext4, xfs, ... 非日志型文件系統: ext2, vfat
文件系統的組成部分:
內核中的模塊:ext4, xfs, vfat 用戶空間的管理工具:mkfs.ext4, mkfs.xfs,mkfs.vfat
Linux 的虛擬文件系統:VFS
查前支持的文件系統:cat /proc/filesystems
創建文件系統
mkfs 命令:
(1) # mkfs.FS_TYPE /dev/DEVICE ext4 xfs centos6 1、添加xfs需要的用戶組 #useradd mockbuild 2、安裝xfs相關包,掛載xfs內核 # yum install xfsprogs kmod-xfs xfsdump xfsprogs-devel # modprobe xfs # mkfs.xfs -f FS_type centos7 # mkfs.xfs -f FS_type btrfs vfat (2) # mkfs -t FS_TYPE /dev/DEVICE 格式化分區 -L 'LABEL': 設定卷標
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 查看分區卷標# e2label DEVICE [LABEL]
findfs :查找分區
findfs [options] LABEL=<label> findfs [options] UUID=<uuid>
tune2fs (塊大小不可修改)
tune2fs :重新設定ext 系列文件系統可調整參數的值 -l :查看指定文件系統超級塊信息;super block -L 'LABEL' :修改卷標 -m # :修預留給管理員的空間百分比 -j: 將ext2 升級為ext3 -O: 文件系統屬性啟用或禁用, –O ^has_journal -o: 調整文件系統的默認掛載選項,–o ^acl -U UUID: 修改UUID號 生成UUID號 [root@6 etc]# uuidgen c9fcf00a-6404-4a1c-97dd-8341e137ae99 dumpe2fs: -h:查看超級塊信息(分組信息),分區用分組管理
文件系統檢測和修復
常發生于死機或者非正常關機之后 掛載為文件系統標記為“dirty” ”
fsck: File System Check
fsck.FS_TYPE fsck -t FS_TYPE -a: 自動修復錯誤 -r: 交互式修復錯誤注意: FS_TYPE 一定要與分區上已經文件類型相同;
e2fsck :ext 系列文件專用的檢測修復工具
-y :自動回答為yes -f :強制修復
四、掛載mount
掛載:將額外文件系統與根文件系統某現存的目錄建立起關聯關系,進而使得此目錄做為其它文件訪問入口的行為 卸載:為解除此關聯關系的過程 把設備關聯掛載點:mount Point mount 卸載時:可使用設備,也可以使用掛載點 umount 掛載點下原有文件在掛載完成后會被臨時隱藏 掛載點目錄一般為空
mount 命令掛載文件系統
掛載方法:mount DEVICE MOUNT_POINT mount:通過查看/etc/mtab文件顯示當前已掛載的所有設備 mount [-fnrsvw] [-t vfstype] [-o options] device dir device :指明要掛載的設備; (1) 設備文件:例如/dev/sda5 (2) 卷標:-L 'LABEL', 例如 -L 'MYDATA' (3) UUID, -U 'UUID'如 :例如 -U '0c50523c-43f1- 45e7-85c0-a126711d406e' (4) 偽文件系統名稱:proc, sysfs, devtmpfs, configfs dir :掛載點 事先存在;建議使用空目錄 進程正在使用中的設備無法被卸載
mount 常用命令選項
-t vsftype:指定要掛載的設備上的文件系統類型-r: readonly ,只讀掛載-w: read and write, 讀寫掛載-n: 不更新/etc/mtab,相當于#mount-a :自動掛載所有支持自動掛載的設備( 定義在了/etc/fstab文件中,且掛載選項中有auto 功能)-L 'LABEL':以卷標指定掛載設備[root@6 testdir]# mount -L MYDATE /media/sdd5 -U 'UUID': 以UUID 指定要掛載的設備-B, --bind:綁定目錄到另一個目錄上 [root@6 sdd2]# mount -B /media/CentOS_6.8_Final /media/sdd2 查看內核追蹤到的已掛載的所有設備: # cat /proc/mounts # mount # cat /etc/mtab -o: 掛載本地回環設備 #mount -o loop /PATH/TO/SOME_FILE MOUNT_POINT
mount 掛載選項
-o options:(掛載文件系統的選項) ,多個選項使用逗號分隔
async:異步模式 sync :同步模式, 內存更改時,同時寫磁盤 atime/noatime:包含目錄和文件 diratime/nodiratime:目錄的訪問時間戳 auto/noauto:是否支持自動掛載, 是否支持-a 選項 exec/noexec:是否支持將文件系統上運行應用程序 dev/nodev:是否支持在此文件系統上使用設備文件 mknod sss b 8 1 建立設備文件 suid/nosuid:是否支持suid 和sgid權限 remount :重新掛載 ro:只讀 rw:讀寫 user/nouser:是否允許普通用戶掛載此設備,默認管理員才能掛載 [root@6 media]# mount -o nosuid /dev/sdd1 /media/sdd1 acl:啟用此文件系統上的acl 功能 noacl Defaults :相當于rw, nosuid, dev, exec, auto, nouser, async
卸載命令
查看掛載情況:
#findmnt MOUNT_POINT
查看正在訪問指定文件系統的進程:
#lsof MOUNT_POINT #fuser -v MOUNT_POINT
終止所有在正訪問指定的文件系統的進程:
# fuser -km MOUNT_POINT 卸載: # umount DEVICE # umount MOUNT_POINT
積累應用
1、創建mbr,gpt磁盤分區表
mbr分區 [root@6 a]# fdisk /dev/sdd Command (m for help): n Partition number (1-4): 1 First cylinder (1-2610, default 1): 1 Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): +5G gpt分區 [root@6 a]# gdisk /dev/sdc Command (? for help): n Partition number (1-128, default 1): 1 First sector (34-41943006, default = 2048) or {+-}size{KMGTP}: Last sector (2048-41943006, default = 41943006) or {+-}size{KMGTP}: +5G Current type is 'Linux filesystem' Hex code or GUID (L to show codes, Enter = 8300): Changed type of partition to 'Linux filesystem'
2、創建xfs、ext4、ext3、vfat分區
[root@6 a]# mkfs.xfs -f /dev/sdd1 [root@6 a]# mkfs.ext4 /dev/sdd2 [root@6 a]# mkfs.ext3 /dev/sdc1 [root@6 a]# mkfs.vfat /dev/sdc2 [root@6 a]# blkid /dev/sda1: UUID="598997b7-f4a0-4296-9740-f1221ecf0c6b" TYPE="ext4" /dev/sda2: UUID="31bb0614-7b9f-4856-9518-b5cbc03b34ce" TYPE="ext4" /dev/sda3: UUID="df6f5cfe-b43c-4e5d-9811-7af3f33ede54" TYPE="ext4" /dev/sda5: UUID="b92fd434-da1a-4a6e-bea0-87c6d628898a" TYPE="swap" /dev/sdd1: UUID="446cc786-d9d6-414a-951f-1024f2ea532d" TYPE="xfs" /dev/sdd2: UUID="6c80a99d-b436-4411-821e-bb3903ffc67a" TYPE="ext4" /dev/sdc1: UUID="8ad8e9c2-9a2f-4f13-9452-3c8c431fa598" SEC_TYPE="ext2" TYPE="ext3" /dev/sdc2: UUID="CE09-E896" TYPE="vfat"
3、掛載分區
[root@6 media]# mount /dev/sdd1 /media/sdd1[root@6 media]# mount /dev/sdd2 /media/sdd2[root@6 media]# mount -r /dev/sdc1 /media/sdc1[root@6 media]# mount -w /dev/sdc2 /media/sdc2[root@6 media]# dfFilesystem 1K-blocks Used Available Use% Mounted on /dev/sda2 50264772 4596120 43108652 10% / tmpfs 502068 76 501992 1% /dev/shm /dev/sda1 194241 34211 149790 19% /boot /dev/sda3 20027260 160072 18843188 1% /testdir /dev/sr0 3824484 3824484 0 100% /media/CentOS_6.8_Final /dev/sdd1 5242980 32928 5210052 1% /media/sdd1 /dev/sdd2 5039624 10264 4766700 1% /media/sdd2 /dev/sdc1 5160576 141436 4756996 3% /media/sdc1 /dev/sdc2 5232640 4 5232636 1% /media/sdc2
4、分區(mbr,gpt)區別和結構
MBR(Master Boot Record)主引導記錄,是傳統的分區機制,應用于絕大多數使用BIOS的PC設備 MBR支持32位和64位系統 MBR支持分區數量有限 MBR只支持不超過2T的硬盤,超過2T的硬盤將只能用2T空間(有第三方解決方法) GPT(GUID Partition Table)全局唯一標識分區表,是一個較新的分區機制,解決了MBR很多缺點 支持超過2T的磁盤(64位尋址空間)。fdisk最大只能建立2TB大小的分區,創建一個大于2TB的分區使用parted 向后兼容MBR 必須在支持uEFI的硬件上才能使用(Intel提出,用于取代BIOS) 必須使用64位系統
原創文章,作者:lvasu,如若轉載,請注明出處:http://www.www58058.com/41192
文章對各命令的作用,用法和常用選項總結的很完整,建議能多一些操作,嘗試著靈活運用這些工具來實現,分區的創建與格式化并掛載使用。多動手才能明白自己的不足哦。