Linux系統磁盤管理

[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.最後點擊下一步, 完成便可

分區工具備fdiskgdisk,當硬盤小於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
相關文章
相關標籤/搜索