歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux磁盤概念及其管理工具fdisk

Linux磁盤概念及其管理工具fdisk

日期:2017/2/28 13:49:33   编辑:Linux教程

引言:馮諾依曼體系中的數據存儲器就是我們常說的磁盤或硬盤,它是計算機不可缺少的一個組件,下面來看看Linux中磁盤的基礎概念及管理工具fdisk

實驗環境CentOS7.2

磁盤概念

按磁盤屬性分類有機械硬盤跟固態硬盤

(1)機械硬盤:內部真空

磁盤:正反面含有磁性物質的盤片,由一個馬達固定所有磁盤轉動,固定角速度

每個盤片正反面各有一個磁頭,所有磁頭固定在一個機械臂上

平均尋道時間:5400rpm, 7200rpm, 10000rpm, 15000rpm轉速

track(磁道):每個盤片上出廠格式化

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:顯示現有分區信息

命令演示

1、對已使用的磁盤設備,創建新分區,若沒有可用空間則自動退出。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 [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 獲取幫助):

2、對新添加的磁盤創建新分區。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 [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

3、創建擴展分區,及刪除已存在分區

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 [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

保存退出後,將邏輯分區刪除

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 命令(輸入 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]

Copyright © Linux教程網 All Rights Reserved