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
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.