目錄
- 一.前言
- 二.關于磁盤磁區的結構
- 三.fdisk命令詳解
- 四.使用fdisk進行磁盤磁區
- 4.1 磁盤磁區規劃
- 4.2 fdisk進行磁盤磁區
- 4.3 格式化磁區
- 4.4 創建掛載點/掛載目錄
- 4.5 掛載磁區
- 4.6 設定開機自動掛載磁區
- 4.7 查看磁盤磁區效果
一.前言
? 當服務器插入一塊硬碟,如果我們想要使用該硬碟,需要先使用磁盤磁區管理工具進行磁盤磁區,然后格式化磁區,把磁區掛載到目錄
上,才可以正式使用該硬碟存盤檔案,磁盤磁區管理工具有很多,本文主要介紹fdisk,gdisk,parted,并進行比較,
二.關于磁盤磁區的結構
1.磁盤的磁區結構有兩種,一種是MBR磁區,一種是GPT磁區,下面對兩種結構的特點進行一一說明,
2.MBR(Master Boot Record)
- ? 是傳統的磁區機制,應用于絕大多數使用BIOS引導的PC設備(蘋果使用EFI的方式),很多Server服務器即支持BIOS也支持EFI的引導方式;
- ? MBR支持32bit和64bit系統;
- ? MBR磁區分為主磁區(一塊硬碟最多只能創建4個主磁區)、擴展磁區(一個擴展磁區會占用一個主磁區的位置)、邏輯磁區(邏輯磁區是基于擴展磁區創建出來的,先有擴展磁區,然后在擴展磁區的基礎上再創建邏輯磁區;也就是說我們要使用邏輯磁區,必須先要創建擴展磁區,擴展磁區的空間是不能被直接使用的,我們必須在擴展磁區的基礎上去建立邏輯磁區,才能夠被使用),在Linux上使用擴展磁區和邏輯磁區最多可以創建15個磁區;
- ? MBR只支持不超過2TB的硬碟,
3.GPT(GUID Partition Table)
- ? 是一個較新的磁區機制,解決了MBR的很多缺點;
- ? 支持超過2TB的磁盤;
- ? 向后兼容MBR;
- ? 使用GPT磁區的前提是底層硬體必須支持UEFI(Intel提出的取代BIOS的新一代的引導系統)才能使用,也就是底層硬體必須使用UEFI;
- ? GPT磁區只支持64位作業系統;
- ? GPT磁區串列支持最大128PB(1PB=1024TB),可以定義128個磁區,沒有主磁區,擴展磁區和邏輯磁區的概念,所有磁區都能格式化,
4.判斷磁區是GPT還是MBR的方法如下:
[root@node5 ~]# fdisk -l
Disk /dev/sda: 37.6 GB, 37580963840 bytes, 73400320 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000b606a
#Disk label type: dos這行資訊說明該磁區是MBR磁區
#如果顯示Disk label type: gpt則說明該磁區是GPT磁區
#如下命令也可以查看
[root@node5 ~]# gdisk -l /dev/sda
GPT fdisk (gdisk) version 0.8.10
Partition table scan:
MBR: MBR only
BSD: not present
APM: not present
GPT: not present
#還可以使用如下方法
[root@node5 ~]# parted -l
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 37.6GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 1075MB 1074MB primary xfs boot
2 1075MB 21.5GB 20.4GB primary lvm
#顯示Partition Table: msdos,則是MBR磁區
#顯示Partition Table: gpt,則是GPT磁區
三.fdisk命令詳解
進入fdisk命令視窗之后,輸入m,可以查看所有的fdisk功能,
[root@node5 ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): m
Command action
a toggle a bootable flag # 切換可啟動標志
b edit bsd disklabel # 編輯磁盤標記
c toggle the dos compatibility flag # 切換dos兼容標志
d delete a partition # 洗掉一個磁區
g create a new empty GPT partition table # 創建一個空的GPT磁區表
G create an IRIX (SGI) partition table # 創建一個IRIX磁區表
l list known partition types # 列出已知的磁區型別
m print this menu # 列印選單
n add a new partition # 添加一個磁區
o create a new empty DOS partition table # 創建一個空的DOS磁區表
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 # 改變一個磁區的型別
u change display/entry units # 改變顯示的單位
v verify the partition table # 驗證磁區表
w write table to disk and exit # 寫磁區表并退出
x extra functionality (experts only) # 高級功能
四.使用fdisk進行磁盤磁區
4.1 磁盤磁區規劃
本次磁盤磁區的規劃如下:創建一個主磁區,一個擴展磁區,其中擴展磁區包含兩個邏輯磁區,
4.2 fdisk進行磁盤磁區
使用fdisk對/dev/sdb硬碟進行磁區,
#使用lsblk查看可以知道,sdb這塊磁盤大小為1G
[root@node5 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 35G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 1G 0 disk
└─sdb1 8:17 0 200M 0 part
#對/dev/sdb這塊磁盤進行磁區
[root@node5 ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): m #查看幫助
Command action
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)
Command (m for help): p #列印磁區表
Disk /dev/sdb: 1073 MB, 1073741824 bytes, 2097152 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x56e11754
Device Boot Start End Blocks Id System
/dev/sdb1 2048 411647 204800 83 Linux
#看到已經存在一個磁區/dev/sdb1,我們先把/dev/sdb1給洗掉
Command (m for help): d #洗掉磁區
Selected partition 1
Partition 1 is deleted
Command (m for help): p #列印磁區表,再次查看磁區表,發現/dev/sdb1已經被洗掉
Disk /dev/sdb: 1073 MB, 1073741824 bytes, 2097152 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x56e11754
Device Boot Start End Blocks Id System
Command (m for help): n #新建磁區
Partition type:
p primary (0 primary, 0 extended, 4 free) #主磁區
e extended #擴展磁區
Select (default p): p #選擇新建主磁區
Partition number (1-4, default 1): #主磁區號,會生成/dev/sdb1
First sector (2048-2097151, default 2048): #開始扇區,回車默認從2048開始
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-2097151, default 2097151): +50M #分配主磁區大小,在此為50M
Partition 1 of type Linux and of size 50 MiB is set
Command (m for help): p #列印磁區表,可以看到已經創建了主磁區/dev/sdb1
Disk /dev/sdb: 1073 MB, 1073741824 bytes, 2097152 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x56e11754
Device Boot Start End Blocks Id System
/dev/sdb1 2048 104447 51200 83 Linux
Command (m for help): n #新建磁區
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): e #選擇創建擴展磁區
Partition number (2-4, default 2): #擴展磁區編號,在此我們直接回車,默認為/dev/sdb2
First sector (104448-2097151, default 104448): #默認回車,從當前扇區開始
Using default value 104448
Last sector, +sectors or +size{K,M,G} (104448-2097151, default 2097151): +500M #分配擴展磁區大小,在此為500M
Partition 2 of type Extended and of size 500 MiB is set
Command (m for help): n
Partition type:
p primary (1 primary, 1 extended, 2 free)
l logical (numbered from 5)
Select (default p): l #新建邏輯磁區
Adding logical partition 5 #默認邏輯磁區編號為5
First sector (106496-1128447, default 106496): #邏輯磁區起始位置
Using default value 106496
Last sector, +sectors or +size{K,M,G} (106496-1128447, default 1128447): +200M #分配邏輯磁區大小,在此為200M
Partition 5 of type Linux and of size 200 MiB is set
Command (m for help): n
Partition type:
p primary (1 primary, 1 extended, 2 free)
l logical (numbered from 5)
Select (default p): l #新建第二個邏輯磁區
Adding logical partition 6
First sector (518144-1128447, default 518144):
Using default value 518144
Last sector, +sectors or +size{K,M,G} (518144-1128447, default 1128447): #直接回車,默認分配剩余空間
Using default value 1128447
Partition 6 of type Linux and of size 298 MiB is set
Command (m for help): p
Disk /dev/sdb: 1073 MB, 1073741824 bytes, 2097152 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x56e11754
Device Boot Start End Blocks Id System
/dev/sdb1 2048 104447 51200 83 Linux
/dev/sdb2 104448 1128447 512000 5 Extended
/dev/sdb5 106496 516095 204800 83 Linux
/dev/sdb6 518144 1128447 305152 83 Linux
#通過如上輸出可知,/dev/sdb1為主磁區,/dev/sdb2為擴展磁區,擴展磁區又包含兩個邏輯磁區/dev/sdb5和/dev/sdb6
Command (m for help): w #保存磁區資訊并退出
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@node5 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 35G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 1G 0 disk
├─sdb1 8:17 0 50M 0 part
├─sdb2 8:18 0 1K 0 part
├─sdb5 8:21 0 200M 0 part
└─sdb6 8:22 0 298M 0 part
sr0 11:0 1 1024M 0 rom
[root@node5 ~]# ls /dev/sdb*
/dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdb5 /dev/sdb6
4.3 格式化磁區
把磁區格式化成你想要的檔案系統,
#可以把磁區格式化成各種檔案系統
[root@node5 ~]# mkfs
mkfs mkfs.btrfs mkfs.cramfs mkfs.ext2 mkfs.ext3 mkfs.ext4 mkfs.fat mkfs.minix mkfs.msdos mkfs.vfat mkfs.xfs
#把/dev/sdb1格式化成xfs檔案系統
[root@node5 ~]# mkfs.xfs /dev/sdb1
mkfs.xfs: /dev/sdb1 appears to contain an existing filesystem (xfs).
mkfs.xfs: Use the -f option to force overwrite.
[root@node5 ~]# mkfs.xfs -f /dev/sdb1
meta-data=https://www.cnblogs.com/dev/sdb1 isize=512 agcount=2, agsize=6400 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=12800, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=855, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
#把/dev/sdb5格式化成ext4檔案系統
[root@node5 ~]# mkfs.ext4 /dev/sdb5
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
51200 inodes, 204800 blocks
10240 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=33816576
25 block groups
8192 blocks per group, 8192 fragments per group
2048 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729
Allocating group tables: done
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
4.4 創建掛載點/掛載目錄
[root@node5 ~]# mkdir /sdb1
[root@node5 ~]# mkdir /sdb5
4.5 掛載磁區
[root@node5 ~]# mount /dev/sdb1 /sdb1
[root@node5 ~]# mount /dev/sdb5 /sdb5
[root@node5 ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/centos-root xfs 17G 11G 6.1G 65% /
devtmpfs devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs tmpfs 3.9G 8.0K 3.9G 1% /dev/shm
tmpfs tmpfs 3.9G 8.8M 3.9G 1% /run
tmpfs tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 125M 890M 13% /boot
tmpfs tmpfs 785M 0 785M 0% /run/user/0
/dev/sdb1 xfs 47M 2.7M 45M 6% /sdb1
/dev/sdb5 ext4 190M 1.6M 175M 1% /sdb5
4.6 設定開機自動掛載磁區
磁盤磁區使用mount手動掛載之后,還需要把掛載資訊寫入/etc/fstab檔案中,不然重啟之后,需要重新掛載,系統開機時會主動讀
取/etc/fstab這個檔案中的內容,根據檔案里面的配置掛載磁盤,這樣我們只需要將磁盤的掛載資訊寫入這個檔案中我們就不需要每次開
機啟動之后手動進行掛載了,
[root@node5 ~]# echo "/dev/sdb1 /sdb1 xfs defaults 0 0 " >> /etc/fstab
[root@node5 ~]# echo "/dev/sdb5 /sdb5 ext4 defaults 0 0 " >> /etc/fstab
#注釋,/etc/fstab檔案詳解
#示例為: /dev/sda3 /home ext4 defaults,noatime 0 2
/etc/fstab檔案主要包括6段,依次是:
<file system> <dir> <type> <options> <dump> <pass>
<file system> 要掛載的磁區或存盤設備
<dir> 掛載的目錄位置
<type> 掛載磁區的檔案系統型別,比如:ext3、ext4、xfs、swap
<options> 掛載使用的引數有哪些,舉例如下:
auto - 在啟動時或鍵入了 mount -a 命令時自動掛載,
noauto - 只在你的命令下被掛載,
exec - 允許執行此磁區的二進制檔案,
noexec - 不允許執行此檔案系統上的二進制檔案,
ro - 以只讀模式掛載檔案系統,
rw - 以讀寫模式掛載檔案系統,
user - 允許任意用戶掛載此檔案系統,若無顯示定義,隱含啟用 noexec, nosuid, nodev 引數,
users - 允許所有 users 組中的用戶掛載檔案系統.
nouser - 只能被 root 掛載,
owner - 允許設備所有者掛載.
sync - I/O 同步進行,
async - I/O 異步進行,
dev - 決議檔案系統上的塊特殊設備,
nodev - 不決議檔案系統上的塊特殊設備,
suid - 允許 suid 操作和設定 sgid 位,這一引數通常用于一些特殊任務,使一般用戶運行程式時臨時提升權限,
nosuid - 禁止 suid 操作和設定 sgid 位,
noatime - 不更新檔案系統上 inode 訪問記錄,可以提升性能,
nodiratime - 不更新檔案系統上的目錄 inode 訪問記錄,可以提升性能(參見 atime 引數),
relatime - 實時更新 inode access 記錄,只有在記錄中的訪問時間早于當前訪問才會被更新,(與 noatime 相似,但不會打斷如 mutt 或其它程式探測檔案在上次訪問后是否被修改的行程,),可以提升性能,
flush - vfat 的選項,更頻繁的重繪資料,復制對話框或進度條在全部資料都寫入后才消失,
defaults - 使用檔案系統的默認掛載引數,例如 ext4 的默認引數為:rw, suid, dev, exec, auto, nouser, async.
<dump> dump 工具通過它決定何時作備份. dump 會檢查其內容,并用數字來決定是否對這個檔案系統進行備份, 允許的數字是 0 和 1 ,0 表示忽略, 1 則進行備份,大部分的用戶是沒有安裝 dump 的 ,對他們而言 <dump> 應設為 0,
<pass> fsck 讀取 <pass> 的數值來決定需要檢查的檔案系統的檢查順序,允許的數字是0, 1, 和2, 根目錄應當獲得最高的優先權 1, 其它所有需要被檢查的設備設定為 2. 0 表示設備不會被 fsck 所檢查,
4.7 查看磁盤磁區效果
[root@node5 ~]# df -hT /sdb1
Filesystem Type Size Used Avail Use% Mounted on
/dev/sdb1 xfs 47M 2.7M 45M 6% /sdb1
[root@node5 ~]# df -hT /sdb5
Filesystem Type Size Used Avail Use% Mounted on
/dev/sdb5 ext4 190M 1.6M 175M 1% /sdb5
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/205823.html
標籤:Linux
