Bash

bash + 如何在 Linux 中自動創建磁碟分區

  • August 30, 2022

這是我們的 rhel 伺服器機器的範例

lsblk
NAME               MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT

sdb                  8:16   0   20G  0 disk /data/sdb
sdc                  8:32   0   20G  0 disk /data/sdc
sdd                  8:48   0   20G  0 disk /data/sdd
sde                  8:64   0   20G  0 disk /data/sde
sdf                  8:80   0   42G  0 disk
sdg                  8:96   0   42G  0 disk
sdh                  8:112  0   42G  0 disk

我們想為其他磁碟創建一個磁碟分區sdf,sdg,sdh,但是所有這些過程都應該通過 bash 腳本進行,我們希望自動化該過程

首先是如何2為磁碟創建分區的sdf範例,因此在此範例中,我們創建兩個分區,每個分區都將獲得10G大小

step 1(每個分區佔用10G時創建分區)

parted /dev/sdf
GNU Parted 3.1
Using /dev/sdf
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel msdos
(parted) mkpart primary 0 10024MB
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? I
(parted)  mkpart primary 10024MB 20048MB
(parted) quit
Information: You may need to update /etc/fstab.

第 2 步(創建文件系統 ext4)

mkfs.ext4 /dev/sdf1

mkfs.ext4 /dev/sdf2
  

現在我們得到(預期的結果)

lsblk

sdf                  8:80   0   42G  0 disk
├─sdf1               8:81   0  9.3G  0 part
└─sdf2               8:82   0  9.3G  0 part

我們可以自動化這個parted過程嗎?或者可能通過其他方法(例如通過fdisk)?

為了在 bash 腳本中使用這個自動化過程

參考 - https://www.tecmint.com/create-disk-partitions-in-linux/

parted 可以選擇使用腳本(–script/-s)。

您可以向程序發出多次呼叫以實現您以互動方式輸入的內容:

parted --script /dev/sdf mklabel msdos
parted --script /dev/sdf mkpart primary 1 10024MB
parted --script /dev/sdf mkpart primary 10024MB 20048MB

繼續 mkfs…

提示:我在 1MB 上開始了第一個分區以避免警告,這也是當今許多發行版的預設設置。

正如 MC68020 作為對您問題的評論所提到的:您應該添加一些錯誤檢查程式碼。

引用自:https://unix.stackexchange.com/questions/715461