Автоматическая установка свежей версии ArchLinux на флешку

Заметил, что частенько мне по работе приходится устанавливать archlinux на флешку с небольшим набором софта, последний раз нужно было просто проверить работает комп или нет.
Каждый раз я выполнял определенный набор команд по установке системы на флешку:

1) Форматируем флешку в ext4 и устанавливаем метку
mkfs.ext4 -L ArchOnFlash /mnt/sdf1
2) Монтируем флешку /mnt/sdf1
3) Устанавливаем базовую систему
mkdir -p /mnt/sdf1/var/lib/pacman
pacman -Sy -r /mnt/sdf1 base syslinux dhcpcd net-tools
4) Добавляем в /mnt/sdf1/etc/fstab запись о корневой фс
LABEL= ArchOnFlash	/	ext4	defaults	0	0
5) Добавляем поддержку загрузки с usb в /mnt/sdf1/etc/mkinitcpio.conf
HOOKS="base udev autodetect scsi sata filesystems usb usbinput"
6) Монтируем служебные фс из основной системы в новую
mount -t proc proc /mnt/sdf1/proc
mount -t sysfs sys /mnt/sdf1/sys
mount -o bind /dev /mnt/sdf1/dev
7) Входим в новую систему и создаем образ ядра
chroot /mnt/sdf1
mkinitcpio -p linux
8) Устанавливаем загрузчик extlinux
syslinux-install_update -iam /dev/sdf
Создаем файл конфигурации /boot/extlinux.conf
DEFAULT ArchLinux
# (0) Arch Linux
LABEL ArchLinux
    LINUX ../vmlinuz-linux
    APPEND root=/dev/disk/by-label/ ArchOnFlash ro quiet
    INITRD ../initramfs-linux.img

Но вот мне надоело и я написал скрипт на bash по автоматической установки свежей системы, может кому пригодится, вся установка занимает минут 5, после перезагрузки вы попадает в девственно чистую систему.

archlinux2flash.sh
#!/bin/bash
# archlinux2flash.sh
# Created by aivs.su. Contact: aivs@yandex.ru
# Для работы программы требуются пакеты: e2fsprogs, sed, mkinitcpio
# Программа установки свежей версии archlinux на флешку
# Для установки системы на флешку нужно только указать устройство
# Пример работы программы: archlinux2flash /dev/sdc
# После чего флешка будет отформатирована, и на нее будет установлена свежая версия системы
# Проверка на зависимости
# Проверка, установлен ли e2fsprogs, нужен для mkfs.ext4
if [ `pacman -Qq e2fsprogs` = "e2fsprogs" ]
then
    echo "e2fsprogs найден"
else
    echo "e2fsprogs не установлен"
    pacman -Sy e2fsprogs
fi
# Проверка, установлен ли sed, нужен для парсинга конфигов
if [ `pacman -Qq sed` = "sed" ]
then
    echo "sed найден"
else
    echo "sed не установлен"
    pacman -Sy sed
fi
# Проверка, установлен ли mkinitcpio, нужен для сборки образа ядра
if [ `pacman -Qq mkinitcpio` = "mkinitcpio" ]
then
    echo "mkinitcpio найден"
else
    echo "mkinitcpio не установлен"
    pacman -Sy mkinitcpio
fi
# Проверяем, указан ли аргумент - устройство
if [ -n "$1" ]
then
    FLASH=$1
else
    echo "Нужно указать устройство, например archlinux2flash /dev/sdc1"
fi
# 1. Форматируем флешку и устанавливаем метку Archlinux системному разделу на флешке
echo "Проверьте, что указаное устройство $FLASH является флешкой,
а не вашим разделом жесткого диска с важными данными.
Отформатировать диск (y/n)"
read FORMAT_Y_N
if [ $FORMAT_Y_N = "y" ]
then
    mkfs.ext4 -L ArchOnFlash $FLASH
else
    echo "Форматирование отменено. Выход."
    exit 1
fi
# 2. Монтируем раздел
MOUNTPOINT="/mnt/ArchLinux-temp"
echo "Монтируем раздел в $MOUNTPOINT"
mkdir -p $MOUNTPOINT
mount $FLASH $MOUNTPOINT
# 3. Устанавливаем базовую систему
mkdir -p $MOUNTPOINT/var/lib/pacman
pacman -Sy -r $MOUNTPOINT base syslinux dhcpcd net-tools
# 4. правим конфигурационные файл новой системы (fstab, mkinitcpio.conf)
# Добавляем в fstab запись о корневой фс
echo "Записываем в $MOUNTPOINT/etc/fstab точку монтирования корневой фс"
echo "LABEL=ArchOnFlash	/	ext4	defaults	0	0" >> $MOUNTPOINT/etc/fstab
# Добавляем поддержку загрузки с usb в образ ядра
echo "Добавляем поддержку загрузки с usb"
sed -i 's/^[^#]*HOOKS=.*/HOOKS="base udev autodetect scsi sata filesystems usb usbinput"/' $MOUNTPOINT/etc/mkinitcpio.conf
# Монтируем служебные фс в установленную систему
echo "Монтируем служебные файловые системы: /proc, /sys, /dev"
mount -t proc proc $MOUNTPOINT/proc
mount -t sysfs sys $MOUNTPOINT/sys
mount -o bind /dev $MOUNTPOINT/dev
# Cоздаем образ ядра для новой системы и устанавливаем загрузчик
# ${FLASH:0:8} означает от строки /dev/sdf1 взять с начала 8 символов, получается /dev/sdf
echo "Создаем образ ядра"
chroot $MOUNTPOINT mkinitcpio -p linux
echo "Усанавливаем загрузчик на ${FLASH:0:8}"
chroot $MOUNTPOINT syslinux-install_update -iam ${FLASH:0:8}
# Создаем новый syslinux.cfg
echo "Создаем конфигурационный файл загрузчика syslinux"
echo "# Config file for Syslinux -
# /boot/syslinux/syslinux.cfg
# Created by archlinux2flash.sh
DEFAULT ArchLinux
# (0) Arch Linux
LABEL ArchLinux
    LINUX ../vmlinuz-linux
    APPEND root=/dev/disk/by-label/ArchOnFlash ro quiet
    INITRD ../initramfs-linux.img" > $MOUNTPOINT/boot/syslinux/syslinux.cfg
# 7. Размонтируем подключенные фс и удаляем временную точку монтирования
echo "Размонтируем служебные фс и флешку"
umount -t proc $MOUNTPOINT/proc
umount -t sysfs $MOUNTPOINT/sys
umount $MOUNTPOINT/dev
umount $FLASH
rmdir $MOUNTPOINT
echo "Установка завершена!!!
Флешка отмонтирована, можно извлечь"
exit 0
а бут отдльно может?
а выбрать фс можно?
а grub2 может?
а набор пакетов свой?

Мне бы был интересен такой комбайн)))

Вы так часто ставить систему с ноля? Или надо сразу штук 20 флешек таких сделать?
Не каждый же месяц. А раз в пару лет можно и вручную.
Lupus pilum mutat, non mentem.
Могу доделать программу, следуя вашим пожеланиям, завтра допишу.

На несколько компов потребовалось установить систему, 2 сервер, там без заморочек и один мультимедийный комп как приставка к телевизору, экспериментировал с конфигурацией и быстрее было все снесни и заново поставить, чем переправлять старое, в итоге за неделю раз 5 устанавливал систему. В ближайшее время эксперименты не планирую, но когда запланирую, свежая система у меня будет на флешке в рабочем состоянии через 5 минут.
Если будут предложения могу и ГУИ на Qt забабахать.
1.Почему http://archone.sourceforge.net/
2.Какой пароль?
3.Почему sdb1?
4.Если делаю dd на образ,то всегда указываю sdb?
Последний крик моды - эхо 30-летней давности.
Вы о чем?!
aivs
Вы о чем?!
Беру Ваш скрипт,ставлю на флешку,загружаю,а требуют пароль и логин?
И не тупите,вы знаете о чем?
Последний крик моды - эхо 30-летней давности.
Система после загрузки чиста, логин: root, пароля нет, сами установите,
Система реально девственно чиста, даже rc.conf пуст
 
Зарегистрироваться или войдите чтобы оставить сообщение.