Czy istnieje sposób na utworzenie i sformatowanie partycji za pomocą skryptu bash?
Myślę, że można to zrobić za pomocą fdisk, ale nie wiem, jak podać polecenia ze skryptu bash do powłoki fdisk, a następnie wyjść z powłoki fdisk.
Chcę utworzyć partycję i swap, a następnie sformatować ją do ext4 i linux swap z poziomu bash.
Czy w linux kolejność tworzenia partycji
W jaki sposób dodać / i swap
sda1 1- efi
sda2 2- /
sda3 3- swap
sdb1 4- /home
#!/bin/bash
echo Example: sda
read -p '/dev/' hardDrivevar
fdisk /dev/$hardDrivevar << EOF
g
n
1
+550M
t
1
n
2
w
EOF
echo Example: sdb
read -p '/dev/' hardDrivevar
fdisk /dev/$hardDrivevar << EOF
g
n
1
w
q
EOF
mkfs.vfat -F32 -n EFI /dev/sda1
mkfs.ext4 -L root /dev/sda2
mkswap -L swap /dev/sda3
mkfs.ext4 -L dane /dev/sdb1
mount /dev/sda2 /mnt
swapon /dev/sda3
mkdir /mnt/home
mount /dev/sdb1 /mnt/home
Domker
(Domker)
4 Wrzesień 2021 18:35
#2
W przypadku fdisk
łatwo się pomylić przy przekazywaniu parametrów.
Wygodniejszy do oskryptowania będzie sfdisk
.
Przyjmuje listę partycji do utworzenia z pliku. Można też to samo zrobić przekazując mu je przy pomocy echo
przez „rurkę”.
#!/bin/bash
DYSK=/dev/sdx
#rozmiary partycji w MiB
PART_EFI=512 #512 MiB
PART_ROOT=38147 #40 GiB
PART_HOME=190735 #200 GiB
PART_SWAP=7629 #~8 GiB
echo "label: gpt
device: ${DYSK}
unit: sectors
${DYSK}1 : size=${PART_EFI}MiB, type=C12A7328-F81F-11D2-BA4B-00A0C93EC93B
${DYSK}2 : size=${PART_ROOT}MiB, type=0FC63DAF-8483-4772-8E79-3D69D8477DE4
${DYSK}3 : size=${PART_HOME}MiB, type=0FC63DAF-8483-4772-8E79-3D69D8477DE4
${DYSK}4 : size=${PART_SWAP}MiB, type=0657FD6D-A4AB-43C4-84E5-0933C84B4F4F
" | sfdisk ${DYSK}
#typy partycji możesz sobie sprawdzić przy pomocy sfdisk -X gpt -T
#formatowanie standardowo przez mkfs
Możesz również sobie sprawdzić „na brudno” to dodając opcję "-n"
-n, --no-act wykonanie wszystkiego poza zapisem na urządzenie