一、前期準備 測試環境:VMware Workstation / centos8 1)增加一塊磁碟 2)查看新增磁碟(lsblk),發現沒找到新增的磁碟 3)解決查不到新增磁碟問題 重新掃描SCSI匯流排添加設備, $ echo "- - -" > /sys/class/scsi_host/host0 ...
目錄
一、前期準備
測試環境:VMware Workstation / centos8
1)增加一塊磁碟
2)查看新增磁碟(lsblk),發現沒找到新增的磁碟
3)解決查不到新增磁碟問題
重新掃描SCSI匯流排添加設備,
$ echo "- - -" > /sys/class/scsi_host/host0/scan
$ echo "- - -" > /sys/class/scsi_host/host1/scan
$ echo "- - -" > /sys/class/scsi_host/host2/scan
上面的host0/host1/host2主要還得看機器,可能數量會有不一樣。
刷完就可以看到新增的那塊磁碟了
二、分區
1)簡介
- 在 Linux 中規定,每一個硬碟設備最多能有4個主分區(其中包含擴展分區)構成,任何一個擴展分區都要占用一個主分區號碼,也就是在一個硬碟中,主分區和擴展分區一共最多是 4個。
- 主分區可以馬上被使用但不能再分區。擴展分區必須再進行分區後才能使用,也就是說它必須還要進行二次分區。那麼由擴充分區再分下去的是就是邏輯分區(logical partion),況且邏輯分區沒有數量上限制。
- Linux 規定了主分區(或者擴展分區)占用 1 至 16 號碼中的前 4 個號碼。以第一個 IDE 硬碟為例說明,主分區(或者擴展分區)占用了 sda1、sda2、sda3、sda4,而邏輯分區占用了 sda5 到 sda16 等 12 個號碼。
- 一個扇區是512位元組,其中有64個位元組存儲的是分區表,一條分區信息占16個位元組,因此磁碟最多只能分四個分區,這時候就有了擴展分區。
- 擴展分區可以被繼續劃分為多個邏輯分區,邏輯分區是可以進行格式化的。擴展分區把邏輯分區的分區信息在擴展分區中找了一個位置給存起來。假如說p4擴展分區劃分了三個邏輯分區那麼第1個邏輯分區命名為sda5、第2個為sda6、第3個sda7,以此類推。一個磁碟被分為四個分區,第四個分區被設置為擴展分區,第一個邏輯分區為sda5。總結一下,就是不論磁碟有幾個主分區,第一個邏輯分區一定是從sda5開始。
2)fdisk 對磁碟進行分區
[root@centos8-nat-168-182-152 ~]# fdisk /dev/sdb //對sdb磁碟進行分區
Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x72914843.
Command (m for help): m //輸出幫助信息
Help:
DOS (MBR)
a toggle a bootable flag //設置啟動分區
b edit nested BSD disklabel //編輯分區標簽
c toggle the dos compatibility flag //flag
Generic
d delete a partition //刪除一個分區
F list free unpartitioned space //列出分區類型
l list known partition types //輸出幫助信息
n add a new partition //建立一個新的分區
p print the partition table ///列印分區表
t change a partition type //改變分區的ID
v verify the partition table //檢查驗證分區表
i print information about a partition
Misc
m print this menu
u change display/entry units
x extra functionality (experts only)
Script
I load disk layout from sfdisk script file
O dump disk layout to sfdisk script file
Save & Exit
w write table to disk and exit
q quit without saving changes
Create a new label
g create a new empty GPT partition table
G create a new empty SGI (IRIX) partition table
o create a new empty DOS partition table
s create a new empty Sun partition table
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free) //p是主分區
e extended (container for logical partitions) //e是擴展分區
Select (default p): p
Partition number (1-4, default 1): 1 //定義分區數量 --主分區最多只能有四個
First sector (2048-16777215, default 2048): //表示起始扇區;預設從第2048塊扇區開始是因為,由於EFI的興起,要給EFI 代碼留磁碟最開始的1M空間.
Last sector, +sectors or +size{K,M,G,T,P} (2048-16777215, default 16777215): +1024M //此處可直接輸入柱面號碼,但需要你自己計算分區大小,也可直接用+..M(如上),讓系統自己分配柱面號碼。
Created a new partition 1 of type 'Linux' and of size 1 GiB. //這裡就為此分區分配了1G的空間
Command (m for help): w //保存剛纔的配置信息。
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
查看(fdisk -l或者lsblk)
註意
上面的分區只適用於磁碟小於2T,大於2T需要用parted來分區
三、磁碟格式化
格式化:指將分區格式化成不同的文件系統。
文件系統:指操作系統用於明確存儲設備或分區上的文件的方法和數據結構:即在存儲設備上組織文件的方法。
註意
但是當你在格式化的時候,有可能找不到這個分區。這是因為Linux沒有把分區信息讀到內核來,我們需要輸入partprobe這個命令,來使我們內核重讀一下我們的分區信息。
格式化命令
mkfs -t ext4 /dev/sdb1或 mkfs.ext4 /dev/sdb1 兩者命令皆可
Linux下的文件類型有ext2、ext3、ext4、xfs等等,我們可以使用命令:mkfs. 然後用按TAB鍵來查看都有哪些文件類型。
[root@centos8-nat-168-182-152 ~]# mkfs.ext4 /dev/sdb1
mke2fs 1.45.6 (20-Mar-2020)
Creating filesystem with 262144 4k blocks and 65536 inodes
Filesystem UUID: 1463fdcf-7360-4eb2-a671-d07262266121
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
Allocating group tables: done
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
檢查,格式化後就有UUID
[root@centos8-nat-168-182-152 ~]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 xfs 58a9a0c3-f34d-41f7-a3e8-40e4801d8615 /boot
└─sda2 LVM2_member tA0cp2-gAml-dmLs-i3Rh-GHqT-iNDT-fa3PBt
├─cl-root xfs 9cbc11d5-0d6b-4c1a-8511-fba93dada487 /
└─cl-swap swap f0029228-fb9b-4131-ae57-f0ba1282a0c6 [SWAP]
sdb
└─sdb1 ext4 1463fdcf-7360-4eb2-a671-d07262266121
sr0 iso9660 CentOS-8-4-2105-x86_64-dvd 2021-06-01-20-39-18-00
四、掛載
1)臨時掛載
將指定的一個目錄作為掛載點目錄時,如果掛載點的目錄有文件,那麼文件會被隱藏。因此當我們需要掛載目錄時,最好新建一個空文件夾來作為掛在點目錄。(重啟後失效)
創建掛載目錄
$ mkdir -p /opt/data1
掛載
$ mount /dev/sdb1 /opt/data1
取消掛載,下麵兩條命令均可
$ umount /dev/sdb1 # 磁碟名
$ umount /opt/data1 # 掛載目錄名
2)永久掛載
使用永久掛載,就意味著它開機會自動掛載(編輯 /etc/fstab 文件)
命令:blkid:查看對應分區的UUID(編號)。UUID唯一標識每一個分區,防止錯誤的掛載。除此之外,還會顯示分區的類型。(建議先複製一下sdb1的UUID,一會兒會用到)
[root@centos8-nat-168-182-152 ~]# blkid /dev/sdb1
/dev/sdb1: UUID="1463fdcf-7360-4eb2-a671-d07262266121" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="72914843-01"
使用vi編輯 /etc/fstab在命令行直接輸入vim /etc/fstab 就可以編輯,實現開機自動掛載。
$ echo 'UUID="1463fdcf-7360-4eb2-a671-d07262266121" /opt/data1 ext4 defaults 0 0' >> /etc/fstab
/etc/fstab該文件中存在六列參數:
第一列:設備文件或UUID或label(三者的區別看下麵)
第二列:設備的掛載點(空目錄)
第三列:該分區文件系統的格式(可以使用特殊的參數auto,自動識別分區的分區格式)
第四列:文件系統的參數,設置格式的選項
第五列:dump備份的設置(0表示不進行dump備份,1代表每天進行dump備份,2代表不定日期的進行dump備份)
第六列:磁碟檢查設置(其實是一個檢查順序,0代表不檢查,1代表第一個檢查,2後續.一般根目錄是1,數字相同則同時檢查)
設備文件、UUID、label作為標識的不同:
- 使用設備文件名會在當前生效,可能在系統重啟之後會出現問題
- label在系統重啟之後也會生效,但是要實時註意該設備的label
- UUID是分區的唯一標識。(推薦)
可以查看sdb1分區的UUID和label(詳細信息) ,發現sdb1沒有設置label,但是可以查看/dev/sr0的lable(/dev/sr0是光碟機的設備名)
最後驗證:
由於內核還沒有讀取這個命令,使用mount -a 這個命令來讓內核讀取這個文件(通過mount -a 讀取/etc/fstab 重新掛載)
$ mount -a