[Toc] #1.磁盤基本概述 ##1.1Linux中磁盤命名方式 Linux中磁盤的命名方式與磁盤的接口有關,規則以下:node
傳統IDE接口硬盤:/dev/hd[a-z] SCISI接口硬盤:/dev/sd[a-z] 虛擬化硬盤:/dev/vd[a-z] 在設備名稱的定義規則以下, 其餘的分區能夠以此類推 系統的第一塊SCSI接口的硬盤名稱爲/dev/sda 系統的第二塊SCSI接口的硬盤名稱爲/dev/sdb 系統中分區由數字編號表示, 1-4留給主分區使用和擴展分區, 邏輯分區從5開始linux
//第一塊磁盤 /dev/sda //第一塊磁盤的第一個分區 /dev/sda1 //第二塊磁盤的第一個分區 /dev/sdb1
##1.2MBR與GPT 在使用新磁盤以前,你必須對其進行分區。MBR(Master Boot Record)和GPT(GUID Partition Table)是在磁盤上存儲分區信息的兩種不一樣方式。這些分區信息包含了分區從哪裏開始的信息,這樣操做系統才知道哪一個扇區是屬於哪一個分區的,以及哪一個分區是能夠啓動的。在磁盤上建立分區時,你必須在MBR和GPT之間作出選擇app
MBR是Master Boot Record的簡稱,也就是主引導記錄,是位於磁盤最前邊的一段引導(Loader)代碼,主要用來引導操做系統的加載與啓動ide
特色:工具
MBR支持最大2TB磁盤,它沒法處理大於2TB容量的磁盤 只支持最多4個主分區。若想要更多分區,須要建立擴展分區,並在其中建立邏輯分區佈局
GPT磁盤是指使用GUID分區表的磁盤,GUID磁盤分區表(GUID Partition Table,縮寫:GPT)其含義爲「全局惟一標識磁盤分區表」,是一個實體硬盤的分區表的結構佈局的標準ui
特色:this
GPT對磁盤大小沒有限制 最多能夠建立128個分區 注意:MBR與GPT之間互相轉換會致使數據丟失spa
#2.磁盤容量檢查操作系統
使用df命令查看磁盤容量,不加參數以k爲單位:
df -i //查看inode使用狀況 df -h //以G或者T或者M人性化方式顯示 df -T //查看文件類型 //使用df命令查看磁盤,下面分別介紹每列什麼含義 [root@liping ~]# df -Th 文件系統 類型 容量 已用 可用 已用% 掛載點 /dev/mapper/rhel-root xfs 17G 1.1G 16G 7% / devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs tmpfs 1.9G 8.7M 1.9G 1% /run tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/sda1 xfs 1014M 143M 872M 15% /boot tmpfs tmpfs 378M 0 378M 0% /run/user/0
使用lsblk查看分區狀況:
[root@liping ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 19G 0 part ├─rhel-root 253:0 0 17G 0 lvm / └─rhel-swap 253:1 0 2G 0 lvm [SWAP] sdb 8:16 0 20G 0 disk sdc 8:32 0 20G 0 disk sdd 8:48 0 20G 0 disk sr0 11:0 1 3.8G 0 rom
使用du命令查看目錄或者文件的容量,不加參數以k爲單位:
du -sh opt //人性化輸出顯示大小 -s:列出總和 -h:人性化顯示容量信息 [root@liping ~]# du -sh /etc 31M /etc
#3.磁盤分區 分區以前, 須要先給虛擬機添加一塊磁盤,以便於咱們作後續的實驗vmware虛擬機,請按以下進行操做:
1.找到對應虛擬主機點擊右鍵, 選擇設置 2.在硬件嚮導裏面點擊添加按鈕, 在硬件類型中選中「硬盤」, 點擊下一步 3.磁盤類型選擇默認, 而後建立新虛擬磁盤, 調整大小(不要勾選當即分配空間) 4.最後點擊下一步, 完成便可
分區工具備fdisk和gdisk,當硬盤小於2T的時候咱們應該用fdisk來分區,而當硬盤大於2T的時候則應用gdisk來進行分區 ##3.1 fdisk分區
[root@localhost ~]# fdisk /dev/sdb Command (m for help): m //輸入m列出經常使用的命令 Command action a toggle a bootable flag //切換分區啓動標記 b edit bsd disklabel //編輯sdb磁盤標籤 c toggle the dos compatibility flag //切換dos兼容模式 d delete a partition //刪除分區 l list known partition types //顯示分區類型 m print this menu //顯示幫助菜單 n add a new partition //新建分區 o create a new empty DOS partition table //建立新的空白分區表 p print the partition table //顯示分區表的信息 q quit without saving changes //不保存退出 s create a new empty Sun disklabel //建立新的Sun磁盤標籤 t change a partition's system id //修改分區ID,能夠經過l查看id u change display/entry units //修改容量單位,磁柱或扇區 v verify the partition table //檢驗分區表 w write table to disk and exit //保存退出 x extra functionality (experts only) //拓展功能
1P1E6L [root@liping ~]# fdisk /dev/sdb 歡迎使用 fdisk (util-linux 2.23.2)。 更改將停留在內存中,直到您決定將更改寫入磁盤。 使用寫入命令前請三思。 Device does not contain a recognized partition table 使用磁盤標識符 0x8a096506 建立新的 DOS 磁盤標籤。 命令(輸入 m 獲取幫助):n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p 分區號 (1-4,默認 1): 起始 扇區 (2048-41943039,默認爲 2048): 將使用默認值 2048 Last 扇區, +扇區 or +size{K,M,G} (2048-41943039,默認爲 41943039):+100M 分區 1 已設置爲 Linux 類型,大小設爲 100 MiB 命令(輸入 m 獲取幫助):n Partition type: p primary (1 primary, 0 extended, 3 free) e extended Select (default p): e 分區號 (2-4,默認 2): 起始 扇區 (206848-41943039,默認爲 206848): 將使用默認值 206848 Last 扇區, +扇區 or +size{K,M,G} (206848-41943039,默認爲 41943039): 將使用默認值 41943039 分區 2 已設置爲 Extended 類型,大小設爲 19.9 GiB 命令(輸入 m 獲取幫助):n Partition type: p primary (1 primary, 1 extended, 2 free) l logical (numbered from 5) Select (default p): l 添加邏輯分區 5 起始 扇區 (208896-41943039,默認爲 208896): 將使用默認值 208896 Last 扇區, +扇區 or +size{K,M,G} (208896-41943039,默認爲 41943039):+2G 分區 5 已設置爲 Linux 類型,大小設爲 2 GiB 命令(輸入 m 獲取幫助):n Partition type: p primary (1 primary, 1 extended, 2 free) l logical (numbered from 5) Select (default p): l 添加邏輯分區 6 起始 扇區 (4405248-41943039,默認爲 4405248): 將使用默認值 4405248 Last 扇區, +扇區 or +size{K,M,G} (4405248-41943039,默認爲 41943039):+2G 分區 6 已設置爲 Linux 類型,大小設爲 2 GiB 命令(輸入 m 獲取幫助):n Partition type: p primary (1 primary, 1 extended, 2 free) l logical (numbered from 5) Select (default p): l 添加邏輯分區 7 起始 扇區 (8601600-41943039,默認爲 8601600): 將使用默認值 8601600 Last 扇區, +扇區 or +size{K,M,G} (8601600-41943039,默認爲 41943039):+2G 分區 7 已設置爲 Linux 類型,大小設爲 2 GiB 命令(輸入 m 獲取幫助):n Partition type: p primary (1 primary, 1 extended, 2 free) l logical (numbered from 5) Select (default p): l 添加邏輯分區 8 起始 扇區 (12797952-41943039,默認爲 12797952): 將使用默認值 12797952 Last 扇區, +扇區 or +size{K,M,G} (12797952-41943039,默認爲 41943039):+2G 分區 8 已設置爲 Linux 類型,大小設爲 2 GiB 命令(輸入 m 獲取幫助):n Partition type: p primary (1 primary, 1 extended, 2 free) l logical (numbered from 5) Select (default p): l 添加邏輯分區 9 起始 扇區 (16994304-41943039,默認爲 16994304): 將使用默認值 16994304 Last 扇區, +扇區 or +size{K,M,G} (16994304-41943039,默認爲 41943039):+2G 分區 9 已設置爲 Linux 類型,大小設爲 2 GiB 命令(輸入 m 獲取幫助):n Partition type: p primary (1 primary, 1 extended, 2 free) l logical (numbered from 5) Select (default p): l 添加邏輯分區 10 起始 扇區 (21190656-41943039,默認爲 21190656): 將使用默認值 21190656 Last 扇區, +扇區 or +size{K,M,G} (21190656-41943039,默認爲 41943039):+2g 不支持的後綴:「g」。 支持:10^N: KB (千字節), MB (兆字節), GB (吉字節) 2^N: K (約千字節), M (約兆字節), G (約吉字節) Last 扇區, +扇區 or +size{K,M,G} (21190656-41943039,默認爲 41943039):+2G 分區 10 已設置爲 Linux 類型,大小設爲 2 GiB 命令(輸入 m 獲取幫助):p 磁盤 /dev/sdb:21.5 GB, 21474836480 字節,41943040 個扇區 Units = 扇區 of 1 * 512 = 512 bytes 扇區大小(邏輯/物理):512 字節 / 512 字節 I/O 大小(最小/最佳):512 字節 / 512 字節 磁盤標籤類型:dos 磁盤標識符:0x8a096506 設備 Boot Start End Blocks Id System /dev/sdb1 2048 206847 102400 83 Linux /dev/sdb2 206848 41943039 20868096 5 Extended /dev/sdb5 208896 4403199 2097152 83 Linux /dev/sdb6 4405248 8599551 2097152 83 Linux /dev/sdb7 8601600 12795903 2097152 83 Linux /dev/sdb8 12797952 16992255 2097152 83 Linux /dev/sdb9 16994304 21188607 2097152 83 Linux /dev/sdb10 21190656 25384959 2097152 83 Linux 命令(輸入 m 獲取幫助):w The partition table has been altered! Calling ioctl() to re-read partition table. 正在同步磁盤。 [root@liping ~]# partprobe /dev/sdb [root@liping ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 19G 0 part ├─rhel-root 253:0 0 17G 0 lvm / └─rhel-swap 253:1 0 2G 0 lvm [SWAP] sdb 8:16 0 20G 0 disk ├─sdb1 8:17 0 100M 0 part ├─sdb2 8:18 0 1K 0 part ├─sdb5 8:21 0 2G 0 part ├─sdb6 8:22 0 2G 0 part ├─sdb7 8:23 0 2G 0 part ├─sdb8 8:24 0 2G 0 part ├─sdb9 8:25 0 2G 0 part └─sdb10 8:26 0 2G 0 part sdc 8:32 0 20G 0 disk sdd 8:48 0 20G 0 disk
##3.2 gdisk分區
[root@liping ~]# gdisk /dev/sdc GPT fdisk (gdisk) version 0.8.6 Partition table scan: MBR: not present BSD: not present APM: not present GPT: not present Creating new GPT entries. Command (? for help): n Partition number (1-128, default 1): First sector (34-41943006, default = 2048) or {+-}size{KMGTP}: Last sector (2048-41943006, default = 41943006) or {+-}size{KMGTP}: +500M Current type is 'Linux filesystem' Hex code or GUID (L to show codes, Enter = 8300): Changed type of partition to 'Linux filesystem' Command (? for help): n Partition number (2-128, default 2): First sector (34-41943006, default = 1026048) or {+-}size{KMGTP}: Last sector (1026048-41943006, default = 41943006) or {+-}size{KMGTP}: +500M Current type is 'Linux filesystem' Hex code or GUID (L to show codes, Enter = 8300): Changed type of partition to 'Linux filesystem' Command (? for help): p Disk /dev/sdc: 41943040 sectors, 20.0 GiB Logical sector size: 512 bytes Disk identifier (GUID): A98A3D7C-7723-46AA-8E0A-2AEEF884F903 Partition table holds up to 128 entries First usable sector is 34, last usable sector is 41943006 Partitions will be aligned on 2048-sector boundaries Total free space is 39894973 sectors (19.0 GiB) Number Start (sector) End (sector) Size Code Name 1 2048 1026047 500.0 MiB 8300 Linux filesystem 2 1026048 2050047 500.0 MiB 8300 Linux filesystem Command (? for help): w Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!! Do you want to proceed? (Y/N): Y OK; writing new GUID partition table (GPT) to /dev/sdc. The operation has completed successfully. [root@liping ~]# partprobe /dev/sdc [root@liping ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 19G 0 part ├─rhel-root 253:0 0 17G 0 lvm / └─rhel-swap 253:1 0 2G 0 lvm [SWAP] sdb 8:16 0 20G 0 disk ├─sdb1 8:17 0 100M 0 part ├─sdb2 8:18 0 1K 0 part ├─sdb5 8:21 0 2G 0 part ├─sdb6 8:22 0 2G 0 part ├─sdb7 8:23 0 2G 0 part ├─sdb8 8:24 0 2G 0 part ├─sdb9 8:25 0 2G 0 part └─sdb10 8:26 0 2G 0 part sdc 8:32 0 20G 0 disk ├─sdc1 8:33 0 500M 0 part └─sdc2 8:34 0 500M 0 part sdd 8:48 0 20G 0 disk sr0 11:0 1 3.8G 0 rom /mnt
#4. 磁盤格式化 使用mkfs命令格式化磁盤,建立文件系統
//mkfs經常使用的選項有 -b //設定數據區塊佔用空間大小,目前支持102四、204八、4096 bytes每一個塊。 -t //用來指定什麼類型的文件系統,能夠是ext3,ext4, xfs -i //設定inode的大小 -N //設定inode數量,防止Inode數量不夠致使磁盤不足 -L //預設該分區的標籤label [root@liping ~]# mkfs. mkfs.btrfs mkfs.cramfs mkfs.ext2 mkfs.ext3 mkfs.ext4 mkfs.minix mkfs.xfs [root@liping ~]# blkid /dev/sda1: UUID="b9283078-2957-4615-82f6-897dac4cd6f5" TYPE="xfs" /dev/sda2: UUID="SKZXLA-7mfq-Mi7R-6Vi9-DuJu-WVwW-7sNZOe" TYPE="LVM2_member" /dev/sdc1: PARTLABEL="Linux filesystem" PARTUUID="c2517223-78ee-464b-83a6-36ab7c5f1e1f" /dev/sdc2: PARTLABEL="Linux filesystem" PARTUUID="862524e8-6da5-4d88-a942-0917efb218f5" /dev/sr0: UUID="2017-07-11-01-39-24-00" LABEL="RHEL-7.4 Server.x86_64" TYPE="iso9660" PTTYPE="dos" /dev/mapper/rhel-root: UUID="b2622c5c-07de-413a-8861-1728ff65674a" TYPE="xfs" /dev/mapper/rhel-swap: UUID="bfecd432-5935-4d8b-b2fb-795233927098" TYPE="swap" [root@liping ~]# [root@liping ~]# mkfs.ext4 /dev/sdb1 mke2fs 1.42.9 (28-Dec-2013) 文件系統標籤= OS type: Linux 塊大小=1024 (log=0) 分塊大小=1024 (log=0) Stride=0 blocks, Stripe width=0 blocks 25688 inodes, 102400 blocks 5120 blocks (5.00%) reserved for the super user 第一個數據塊=1 Maximum filesystem blocks=33685504 13 block groups 8192 blocks per group, 8192 fragments per group 1976 inodes per group Superblock backups stored on blocks: 8193, 24577, 40961, 57345, 73729 Allocating group tables: 完成 正在寫入inode表: 完成 Creating journal (4096 blocks): 完成 Writing superblocks and filesystem accounting information: 完成 [root@liping ~]# blkid /dev/sda1: UUID="b9283078-2957-4615-82f6-897dac4cd6f5" TYPE="xfs" /dev/sda2: UUID="SKZXLA-7mfq-Mi7R-6Vi9-DuJu-WVwW-7sNZOe" TYPE="LVM2_member" /dev/sr0: UUID="2017-07-11-01-39-24-00" LABEL="RHEL-7.4 Server.x86_64" TYPE="iso9660" PTTYPE="dos" /dev/mapper/rhel-root: UUID="b2622c5c-07de-413a-8861-1728ff65674a" TYPE="xfs" /dev/mapper/rhel-swap: UUID="bfecd432-5935-4d8b-b2fb-795233927098" TYPE="swap" /dev/sdb1: UUID="c57619a1-eeaf-4e1b-8c73-b77943dc1d0a" TYPE="ext4" /dev/sdc1: PARTLABEL="Linux filesystem" PARTUUID="c2517223-78ee-464b-83a6-36ab7c5f1e1f" /dev/sdc2: PARTLABEL="Linux filesystem" PARTUUID="862524e8-6da5-4d88-a942-0917efb218f5"
#5. 磁盤掛載 掛載分區前須要建立掛載點, 掛載點以目錄形式出現 若是往掛載點目錄寫入數據, 實際上會寫入到該分區 掛載點建議是空目錄, 不是也不影響掛載分區的使用,可是會隱藏原有的文件 ##5.1 臨時掛載磁盤
命令:mount掛載磁盤,實質爲文件系統指定訪問入口 mount -t //指定文件系統掛載分區,如ext3,ext4, xfs mount -a //從新讀取/etc/fstab配置文件的全部分區 mount -o //指定掛載參數 [root@liping ~]# mkdir /opt/sdb [root@liping ~]# df -h 文件系統 容量 已用 可用 已用% 掛載點 /dev/mapper/rhel-root 17G 1.1G 16G 7% / devtmpfs 1.9G 0 1.9G 0% /dev tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs 1.9G 8.7M 1.9G 1% /run tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/sda1 1014M 143M 872M 15% /boot tmpfs 378M 0 378M 0% /run/user/0 /dev/sr0 3.8G 3.8G 0 100% /mnt [root@liping ~]# mount /dev/sdb1 /opt/sdb [root@liping ~]# df -h 文件系統 容量 已用 可用 已用% 掛載點 /dev/mapper/rhel-root 17G 1.1G 16G 7% / devtmpfs 1.9G 0 1.9G 0% /dev tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs 1.9G 8.7M 1.9G 1% /run tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/sda1 1014M 143M 872M 15% /boot tmpfs 378M 0 378M 0% /run/user/0 /dev/sr0 3.8G 3.8G 0 100% /mnt /dev/sdb1 93M 1.6M 85M 2% /opt/sdb
##5.2 永久掛載磁盤
//使用blkid命令獲取各分區的UUID [root@liping ~]# blkid |grep "sdb1" /dev/sdb1: UUID="c57619a1-eeaf-4e1b-8c73-b77943dc1d0a" TYPE="ext4"
//能夠把下面這行寫到/etc/fstab中,永久掛載, 開機自動掛載
[root@liping ~]# blkid |grep "sdb1" /dev/sdb1: UUID="c57619a1-eeaf-4e1b-8c73-b77943dc1d0a" TYPE="ext4" [root@liping ~]# vi /etc/fstab # # /etc/fstab # Created by anaconda on Fri Oct 11 00:36:04 2019 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/rhel-root / xfs defaults 0 0 UUID=b9283078-2957-4615-82f6-897dac4cd6f5 /boot xfs defaults 0 0 /dev/mapper/rhel-swap swap swap defaults 0 0 UUID="c57619a1-eeaf-4e1b-8c73-b77943dc1d0a" /opt/sdb ext4 defaults 0 0 [root@liping ~]# mount -a [root@liping ~]# df -h 文件系統 容量 已用 可用 已用% 掛載點 /dev/mapper/rhel-root 17G 1.1G 16G 7% / devtmpfs 1.9G 0 1.9G 0% /dev tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs 1.9G 8.7M 1.9G 1% /run tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/sda1 1014M 143M 872M 15% /boot tmpfs 378M 0 378M 0% /run/user/0 /dev/sr0 3.8G 3.8G 0 100% /mnt /dev/sdb1 93M 1.6M 85M 2% /opt/sdb
##5.3 卸載掛載磁盤
umount -lf //強制卸載掛載 [root@liping ~]# df -h 文件系統 容量 已用 可用 已用% 掛載點 /dev/mapper/rhel-root 17G 1.1G 16G 7% / devtmpfs 1.9G 0 1.9G 0% /dev tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs 1.9G 8.7M 1.9G 1% /run tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/sdb1 93M 1.6M 85M 2% /opt/sdb /dev/sda1 1014M 143M 872M 15% /boot tmpfs 378M 0 378M 0% /run/user/0 [root@liping ~]# umount -lf /dev/sdb1 [root@liping ~]# df -h 文件系統 容量 已用 可用 已用% 掛載點 /dev/mapper/rhel-root 17G 1.1G 16G 7% / devtmpfs 1.9G 0 1.9G 0% /dev tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs 1.9G 8.7M 1.9G 1% /run tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/sda1 1014M 143M 872M 15% /boot tmpfs 378M 0 378M 0% /run/user/0