понедельник, 2 февраля 2009 г.

Автоматический инсталятор Linux

Linux не Windows, и его можно ставить "из архива". А делается это очень просто. Я взял VmWare, поставил туда Ubuntu, настроил все как надо, а именно:
- Добавил 2 пользователей, admin - "административный" (разрешено sudo, мой пароль), user - "пользовтель" (разрешены только некоторые программы, пароль 123456).
- Автоматический вход для user
- Созданы ярлыки для важных программ, назначены программы типа плееров и т.д.
- В grub оформлено меню, убраны лишние пункты
- Установлены скрипты (читай выше)
- Установлены программы типа Skype, игры, последние обновления системы
- Что то еще, что я не помню, значит "остальное по вкусу"

Потом я взял эту систему и сжал в архив командой типа
tar czvpf ubuntu.tar.gz --exclude=ubuntu.tar.gz *
А этот архив кладем на диск рядом с инсталятором. А вот и сам инсталятор с комментариями:
#!/bin/bash
INSTDIR=/tmp/lamerkit
LINUXDEV=$1
#проверка на запуск без параметров
if [ -z $LINUXDEV ]; then
echo "Ubuntu-lamerkit-install NaGoS 2008
Usage: ubuntu-lamerkit-install.sh DEV"
exit
fi
#Преобразуем имя Linux-устройства в имя Grub-устройства
GRUBDEV=hd0,`echo $LINUXDEV | perl -n -e 'print int($+)-1 if /(\d+)/'`
PW=$PWD
#создаем папку, в которой будем работать
mkdir $INSTDIR
#отмонтируем на случай, если смонтируется автоматом
umount $LINUXDEV
mount $LINUXDEV $INSTDIR ||exit
cd $INSTDIR
tar xvpf $PW/ubuntu.tar.gz ||exit
cd $PW
#определяем UUID устройства, куда будем ставить
UUID=`vol_id --uuid $LINUXDEV`
#файл-заготовка для конфига grub и fstab
MENULST="$INSTDIR/boot/grub/menu.lst"
FSTAB="$INSTDIR/etc/fstab"
cp menu_o.lst $MENULST
#подставляем UUID и grub-устройство
sed -i "s/uuidhere/$UUID/" $MENULST
sed -i "s/hdhere/$GRUBDEV/" $MENULST
cp fstab_o $FSTAB
sed -i "s/uuidhere/$UUID/" $FSTAB
#устанавливаем grub
grub-install --root-directory=$INSTDIR '(hd0)'
А вот заготовки:
# /etc/fstab: static file system information.
#
proc /proc proc defaults 0 0
UUID=uuidhere / ext3 defaults,errors=remount-ro 0 1

#menu.lst
default 0
timeout 5
# This entry automatically added by the Debian installer for a non-linux OS
# on /dev/sda1
title Windows NT/2000/XP
root (hd0,0)
savedefault
makeactive
chainloader +1

title Ubuntu 8.04.1, kernel 2.6.24-16-generic
root (hdhere)
kernel /boot/vmlinuz-2.6.24-16-generic root=UUID=uuidhere ro
quiet
splash locale=ru_RU
initrd /boot/initrd.img-2.6.24-16-generic
quiet

title Restore Windows
root (hdhere)
kernel /boot/vmlinuz-2.6.24-16-generic root=UUID=uuidhere ro winrestore
quiet
splash locale=ru_RU
initrd /boot/initrd.img-2.6.24-16-generic
В заготовках есть ключевые слова uuidhere и hdhere, туда подставляются UUID и grub-устройство.

Когда нужно установить, все го лишь вызываем скрипт:
ubuntu-lamerkit-insall.sh /dev/sdaX
Единственное место в этом скрипте, на которое надо обратить внимание, это то что Grub всегда ставится на (hd0), он же /dev/sda.
И все, через 2-3 минуты получается готовая система.


Загрузить LiveCD, выделить место под ubuntu, и установить
ubuntu-lamerkit-insall.sh /dev/sdaX

Комментариев нет:

Отправить комментарий