引言:馮諾依曼體系中的數據存儲器就是咱們常說的磁盤或硬盤,它是計算機不可缺乏的一個組件,下面來看看Linux中磁盤的基礎概念及管理工具fdisklinux
實驗環境CentOS7.2bash
磁盤概念
ide
按磁盤屬性分類有機械硬盤跟固態硬盤
工具
(1)機械硬盤:內部真空ui
磁盤:正反面含有磁性物質的盤片,由一個馬達固定全部磁盤轉動,固定角速度this
每一個盤片正反面各有一個磁頭,全部磁頭固定在一個機械臂上spa
平均尋道時間:5400rpm, 7200rpm, 10000rpm, 15000rpm轉速操作系統
track(磁道):每一個盤片上出廠格式化orm
sector(扇區):512bytes單位接口
cylinder(柱面):不一樣盤面上同一編號的磁道組合在一塊兒,分區劃分按照柱面實現
越靠近較外部分區的柱面組成的分區,越快。Windows上c盤在最外面
(2)固態硬盤
相似與多個並行U盤,工做模式上模擬機械硬盤的機制。
電器設備,速度我的筆記本是原來的3到5倍,讀400個iops(io per second)、寫200iops
在正式介紹Linux設備文件前需先了解一個概念:MBR
MBR(Master Boot Record):主引導分區,爲一個編號爲0的512字節的扇區
446bytes:bootloader,引導加載器程序,主引導記錄,引導啓動操做系統的程序;
64bytes:分區表,每16bytes標識一個分區,一共只能有4個分區;
2bytes:表示MBA是否有效;55AA爲有效;
注意:
1) 主分區最多四個,擴展分區只能一個
2) 擴展分區不能單獨使用,要繼續分紅邏輯分區,邏輯分區能夠由多個
3) 一個分區就是一個獨立的文件系統
4) 主分區和擴展分區的標識:1-4;邏輯分區:5+
其在Linux中的建立新磁盤分區會涉及主分區與擴展分區內容
/dev
無論是機械硬盤仍是固態硬盤對於Linux看來它都是屬於/dev/下的文件
設備文件名
1)磁盤:IDE: /dev/hd[a-z]
SCSI, SATA, USB, SAS: /dev/sd[a-z]
2)分區:/dev/sda#: /dev/sda1, ...
注意:CentOS 6和7通通將硬盤設備文件標識爲/dev/sd[a-z]#
/dev設備文件介紹
1)設備文件:關聯至設備的驅動程序;設備的訪問入口;
2)設備號:
major:主設備號,區分設備類型;用於標明設備所須要的驅動程序;
minor:次設備號,區分同種類型下的不一樣的設備;是特定設備的訪問入口;
好比/dev/sd# :sd爲主設備號,#爲次設備號。
引用設備的方式:設備文件名,卷標,UUID
磁盤管理工具fdisk:
fdisk:
建立查看分區
(1)查看磁盤的分區信息:
命令使用格式:fdisk -l [-u] [device...]:列出指定磁盤設備上的分區狀況;
(2)管理分區
命令使用格式:fdisk /dev/sd# :建立,刪除,保存磁盤分區配置。
fdisk提供了一個交互式接口來管理分區,它有許多子命令,分別用於不一樣的管理功能;全部的操做均在內存中完成,沒有直接同步到磁盤;直到使用w命令保存至磁盤上;
如下命令選項爲m中的經常使用選項:
n:建立新分區 d:刪除已有分區
t:修改分區類型 l:查看全部已經ID
w:保存並退出 q:不保存並退出
m:查看幫助信息 p:顯示現有分區信息
命令演示:
一、對已使用的磁盤設備,建立新分區,若沒有可用空間則自動退出。
[root@localhost ~]# fdisk /dev/sda 歡迎使用 fdisk (util-linux 2.23.2)。 更改將停留在內存中,直到您決定將更改寫入磁盤。 使用寫入命令前請三思。 命令(輸入 m 獲取幫助):m 命令操做 a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition g create a new empty GPT partition table G create an IRIX (SGI) partition table 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 t change a partition's system id u change display/entry units v verify the partition table w write table to disk and exit x extra functionality (experts only) 命令(輸入 m 獲取幫助):n Partition type: p primary (2 primary, 0 extended, 2 free) e extended Select (default p): p 分區號 (3,4,默認 3): No free sectors available 命令(輸入 m 獲取幫助):
二、對新添加的磁盤建立新分區。
[root@localhost ~]# fdisk /dev/sdb 歡迎使用 fdisk (util-linux 2.23.2)。 更改將停留在內存中,直到您決定將更改寫入磁盤。 使用寫入命令前請三思。 Device does not contain a recognized partition table 使用磁盤標識符 0xd391e822 建立新的 DOS 磁盤標籤。 命令(輸入 m 獲取幫助):n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p 分區號 (1-4,默認 1): 起始 扇區 (2048-10485759,默認爲 2048): 將使用默認值 2048 Last 扇區, +扇區 or +size{K,M,G} (2048-10485759,默認爲 10485759):+1G 分區 1 已設置爲 Linux 類型,大小設爲 1 GiB 命令(輸入 m 獲取幫助):w [root@localhost ~]# fdisk -l 磁盤 /dev/sda:21.5 GB, 21474836480 字節,41943040 個扇區 Units = 扇區 of 1 * 512 = 512 bytes 扇區大小(邏輯/物理):512 字節 / 512 字節 I/O 大小(最小/最佳):512 字節 / 512 字節 磁盤標籤類型:dos 磁盤標識符:0x00036006 設備 Boot Start End Blocks Id System /dev/sda1 * 2048 1026047 512000 83 Linux /dev/sda2 1026048 41943039 20458496 8e Linux LVM 磁盤 /dev/sdb:5368 MB, 5368709120 字節,10485760 個扇區 Units = 扇區 of 1 * 512 = 512 bytes 扇區大小(邏輯/物理):512 字節 / 512 字節 I/O 大小(最小/最佳):512 字節 / 512 字節 磁盤標籤類型:dos 磁盤標識符:0xd391e822 設備 Boot Start End Blocks Id System /dev/sdb1 2048 2099199 1048576 83 Linux
三、建立擴展分區,及刪除已存在分區
[root@localhost ~]# fdisk /dev/sdb 歡迎使用 fdisk (util-linux 2.23.2)。 更改將停留在內存中,直到您決定將更改寫入磁盤。 使用寫入命令前請三思。 命令(輸入 m 獲取幫助):n Partition type: p primary (1 primary, 0 extended, 3 free) e extended Select (default p): e 分區號 (2-4,默認 2): 起始 扇區 (2099200-10485759,默認爲 2099200): 將使用默認值 2099200 Last 扇區, +扇區 or +size{K,M,G} (2099200-10485759,默認爲 10485759):+1G 分區 2 已設置爲 Extended 類型,大小設爲 1 GiB 命令(輸入 m 獲取幫助):p 磁盤 /dev/sdb:5368 MB, 5368709120 字節,10485760 個扇區 Units = 扇區 of 1 * 512 = 512 bytes 扇區大小(邏輯/物理):512 字節 / 512 字節 I/O 大小(最小/最佳):512 字節 / 512 字節 磁盤標籤類型:dos 磁盤標識符:0xd391e822 設備 Boot Start End Blocks Id System /dev/sdb1 2048 2099199 1048576 83 Linux /dev/sdb2 2099200 4196351 1048576 5 Extended 擴展分區建立完畢,下面在擴展分區上建立邏輯分區,你們能夠看到其標號從5開始 命令(輸入 m 獲取幫助):n Partition type: p primary (1 primary, 1 extended, 2 free) l logical (numbered from 5) Select (default p): l 添加邏輯分區 5 起始 扇區 (2101248-4196351,默認爲 2101248): 將使用默認值 2101248 Last 扇區, +扇區 or +size{K,M,G} (2101248-4196351,默認爲 4196351):+100M 分區 5 已設置爲 Linux 類型,大小設爲 100 MiB 命令(輸入 m 獲取幫助):p 磁盤 /dev/sdb:5368 MB, 5368709120 字節,10485760 個扇區 Units = 扇區 of 1 * 512 = 512 bytes 扇區大小(邏輯/物理):512 字節 / 512 字節 I/O 大小(最小/最佳):512 字節 / 512 字節 磁盤標籤類型:dos 磁盤標識符:0xd391e822 設備 Boot Start End Blocks Id System /dev/sdb1 2048 2099199 1048576 83 Linux /dev/sdb2 2099200 4196351 1048576 5 Extended /dev/sdb5 2101248 2306047 102400 83 Linux
保存退出後,將邏輯分區刪除
命令(輸入 m 獲取幫助):w The partition table has been altered! Calling ioctl() to re-read partition table. 正在同步磁盤。 [root@localhost ~]# fdisk -l ... 設備 Boot Start End Blocks Id System /dev/sdb1 2048 2099199 1048576 83 Linux /dev/sdb2 2099200 4196351 1048576 5 Extended /dev/sdb5 2101248 2306047 102400 83 Linux ... [root@localhost ~]# fdisk /dev/sdb 歡迎使用 fdisk (util-linux 2.23.2)。 更改將停留在內存中,直到您決定將更改寫入磁盤。 使用寫入命令前請三思。 命令(輸入 m 獲取幫助):d 分區號 (1,2,5,默認 5):5 分區 5 已刪除 命令(輸入 m 獲取幫助):p 磁盤 /dev/sdb:5368 MB, 5368709120 字節,10485760 個扇區 Units = 扇區 of 1 * 512 = 512 bytes 扇區大小(邏輯/物理):512 字節 / 512 字節 I/O 大小(最小/最佳):512 字節 / 512 字節 磁盤標籤類型:dos 磁盤標識符:0xd391e822 設備 Boot Start End Blocks Id System /dev/sdb1 2048 2099199 1048576 83 Linux /dev/sdb2 2099200 4196351 1048576 5 Extended 命令(輸入 m 獲取幫助):w The partition table has been altered! Calling ioctl() to re-read partition table. 正在同步磁盤。 [root@localhost ~]# fdisk -l ... 設備 Boot Start End Blocks Id System /dev/sdb1 2048 2099199 1048576 83 Linux /dev/sdb2 2099200 4196351 1048576 5 Extended ...
注意:在已經分區而且已經掛載其中某個分區的磁盤設備上建立的新分區,內核可能在建立完成後沒法直接識別;
通知內核強制重讀磁盤分區表:
查看:cat /proc/partitions
CentOS 5:partprobe [device]
CentOS 6,7:partx, kpartx
partx -a [device]
kpartx -af [device]