LINUX.ORG.RU

Как написать shell скрипт автоматической разбивки диска?

 ,


0

2

Здравствуйте! Хочу написать для себя скрипт, для автоматической установки Arch Linux, подкажите как правильно написать скрипте чтобы он автоматически разбил диски под определенные размеры и дальше пошёл работать за меня. Всё ли я правильно пишу, посмотрите пожалуйста:

# /bin/bash Install Arch Linux
fdisk /dev/sda &&
mkdir /mnt/boot &&
mkfs.ext2 /dev/sda1 &&
mkfs.ext4 /dev/sda3 &&
mkswap /dev/sda2 &&
mount /dev/sda1 /mnt/boot &&
mount /dev/sda3 /mnt &&
swapon /dev/sda3 &&
nano /etc/pacman.d/mirrorlist &&
pacstrap /mnt base base-devel &&
genfstab -U /mnt >> /mnt/etc/fstab &&
arch-chroot /mnt /bin/bash &&
echo "unset HISTFILE" >> /etc/profile &&
cat /dev/null > ~/.bash_history	&&
nano /etc/locale.gen &&
locale-gen	&&
echo LANG=en_US.UTF-8 > /etc/locale.conf &&
ln -s /usr/share/zoneinfo/Zone/SubZone /etc/localtime &&
mkinitcpio -p linux &&
pacman -S grub os-prober &&
grub-install /dev/sda &&
nano /etc/default/grub &&
nano /boot/grub/grub.cfg &&
grub-mkconfig -o /boot/grub/grub.cfg &&
echo arch > /etc/hostname &&
passwd &&
useradd -m -s /bin/bash karabas &&
nano /etc/sudoers &&
passwd karabas &&
systemctl enable dhcpcd.service &&
exit &&
umount -R /mnt &&
swapoff /dev/sda2 &&
reboot

# /bin/bash Install Arch Linux

этого мне почти хватило, чтобы не смотреть дальше.

ну ладно. как говорится, «ну давай разберем по частям, тобою написанное ))»

&&

отлично, теперь только одна команда выполнится не так, и всё, капец установщику

nano /etc/pacman.d/mirrorlist &&

хороший такой скрипт

ещё забыл locale-gen

и ещё дофига всего, лень стало писать чёт

а ещё скажи, нахрена тебе это? ты устроился установщиком арча? хочешь написать то, что уже сделали манжаровцы(только ещё и нормально сделали)? или каким ещё может быть кейс?

f1u77y ★★★★
()
Последнее исправление: f1u77y (всего исправлений: 1)
Ответ на: комментарий от f1u77y

манжару я устанавливал, но мне не понравился графический вариант, потому что это не учит в сути дела, да и сам этот манжаро какой то глюкавый четт. а вообще я учу bash и в качестве подопытного кролика взял арч. то есть ты хочешь сказать мой скрипт не заработает вообще?

Hufoc
() автор топика
Ответ на: комментарий от Hufoc

это не учит в сути дела

а что тебя учит в русскую языка, ты мне лучше скажи.

если серьёзно, то что там «учить»? систему надо поставить и забыть.

я учу bash

учи на здоровье, только напиши лучше более полезное что-нибудь. и да, копирование команд с арчевики явно не поможет тебе выучить bash.

мой скрипт не заработает вообще?

да. попробуй угадать, почему он откажется запускаться

f1u77y ★★★★
()

1) Делай «set -e» или «#!/bin/bash -e» вместо «&&» в каждой строчке.

2) Разбивку можно делать через скармливание команд процессу fdisk через stdin.

Andrey_Utkin ★★
()
Ответ на: комментарий от Hufoc

но мне не понравился графический вариант

есть консольный

да и сам этот манжаро какой то глюкавый четт

чем?

sudopacman ★★★★★
()
Ответ на: комментарий от Hufoc

а вообще я учу bash

Чем вставка команд через «&&» поможет выучить bash?

sudopacman ★★★★★
()

Комментариев! Комментариев к коду не хватает.

kma21 ★★★★
()

В принципе, если заменить все интерактивные команды, то скрипт будет работать.

Amet13 ★★★★★
()
Последнее исправление: Amet13 (всего исправлений: 1)

автоматически разбил диски под определенные размеры

Из моего установщика archlinux:

echo -e "d\n\nd\n\nd\n\nd\n
n\np\n1\n\n+40M
n\np\n3\n\n+50M
t\n2\nef
n\np\n2\n\n\n
a\n1\np\nw"|fdisk /dev/sda

arch-chroot /mnt /bin/bash &&

Это не будет работать, вообще. Все следующие команды надо вводить внутри chroot.

Всё остальное условно будет работать, но это не автоматизация

disarmer ★★★
()

Юзай parted, если раздел больше 2Тб то fdisk идет лесом.

parted -a optimal /dev/sda -s mklabel gpt mkpart primary 0% 100%

Funny_sailor
()
Ответ на: комментарий от Hufoc

Проверок в коде нет. Одна ошибка и оборвется всё.

Deleted
()

Ну вот, например, для разбивки дисков под GPT, есть такая интерактивная утилитка «gdisk».

Однако, есть аналогичная же утилитка командной строки - «sgdisk». Умеет всё, в том числе создавать гибридные с MBR разделы.

slamd64 ★★★★★
()

Помнится для автоматизированной установки по PXE я конфиг для kickstart писал, но сейчас не смог быстро нагуглить. Попробуй покопать в сторону установки арча через ipxe, там где-то должен наткнуться. Не надо свои костыли пилить для этого.

ei-grad ★★★★★
()

Вместо строк:

..
..mkdir /mnt/boot &&
..
..mount /dev/sda1 /mnt/boot &&
..mount /dev/sda3 /mnt &&
..

следует делать так:

mount /dev/sda3 /mnt &&
mkdir -p /mnt/boot &&
mount /dev/sda1 /mnt/boot &&

bsm
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.