Вот собственно мучаю скрипт который устанавливает debian на флэшку, хотел бы его обсудить, можно использовать не только для флэш, например ставить на виртуалку (установка grub будет чуть по-другому).
Подразумеваем флэшка = /dev/sdc, раздел /dev/sdc1 отформатирован ext3.
Дебиан = unstable /sid.
Дабы не качать по нескольку раз одни и те же пакеты стоит approx, репозитории редактируются в /etc/approx/approx.conf, сидит на localhost:9999.
#!/bin/sh
# Подразумеваем что наша флэшка = /dev/sdc
# Раздел на котороый инсталируем = /dev/sdc1 - отформотирован в ext3
USER=user # Имя пользователя
MPOINT=/mnt/usb-sdc # Точка монтирования
ARCHITEC=amd64
mkdir $MPOINT
mount /dev/sdc1 $MPOINT
debootstrap --include=locales --verbose --arch $ARCHITEC unstable $MPOINT http://127.0.0.1:9999/debian
# ftp://ftp.fi.debian.org/debian
mount --bind /dev $MPOINT/dev
mount --bind /proc $MPOINT/proc
rm -f $MPOINT/etc/locale.gen
echo 'en_US ISO-8859-1
en_US.UTF-8 UTF-8
ru_RU.KOI8-R KOI8-R
ru_RU.UTF-8 UTF-8
' > $MPOINT/etc/locale.gen
chroot $MPOINT locale-gen
chroot $MPOINT localedef -i ru_RU -f UTF-8 ru_RU.UTF-8
# chroot /mnt/usb-tmp dpkg-reconfigure locales
rm -f $MPOINT/etc/apt/sources.list
echo '# /apt/sources.list
# ======================================================================================
deb http://127.0.0.1:9999/debian unstable main contrib non-free
deb http://127.0.0.1:9999/debian experimental main contrib non-free
# deb ftp://ftp.fi.debian.org/debian/ unstable main contrib non-free
# deb ftp://ftp.fi.debian.org/debian/ experimental main contrib non-free
# ======================================================================================
' > $MPOINT/etc/apt/sources.list
rm -f $MPOINT/etc/fstab
echo '#
# ======================================================================================
# /etc/fstab: информация о статических файловых системах.
# ======================================================================================
# файл. система точка монтир. тип параметры дамп проход
proc /proc proc defaults 0 0
# ======================================================================================
/dev/sda1 / ext3 defaults 0 0
# ======================================================================================
' > $MPOINT/etc/fstab
rm -f $MPOINT/etc/hostname
echo 'usb' > $MPOINT/etc/hostname
rm -f $MPOINT/etc/resolv.conf
echo 'nameserver 127.0.0.1' > $MPOINT/etc/resolv.conf
rm -f $MPOINT/etc/hosts
echo '127.0.0.1 localhost
127.0.1.1 usb' > $MPOINT/etc/hosts
chroot $MPOINT apt-get update
chroot $MPOINT dpkg-reconfigure tzdata
chroot $MPOINT apt-get install -y console-cyrillic console-data console-setup
chroot $MPOINT apt-get install -y linux-image-2.6.32-5-$ARCHITEC
chroot $MPOINT apt-get install -y ntfs-3g ntfsprogs reiserfsprogs reiser4progs mc zsh
chroot $MPOINT apt-get install -y sysv-rc-conf chkconfig pppoeconf htop unrar-free elinks
mkdir $MPOINT/boot/grub
echo '(hd0) /dev/sdc' > $MPOINT/boot/grub/device.map
cat $MPOINT/boot/grub/device.map
grub-install --root-directory=$MPOINT --no-floppy '(hd0)'
chroot $MPOINT apt-get install -y grub2
chroot $MPOINT update-grub
echo '
# ===========================================
ROOT PASWOORD for new system.................
# ==========================================='
chroot $MPOINT passwd
chroot $MPOINT adduser $USER
chroot $MPOINT addgroup --system admin
chroot $MPOINT adduser $USER admin
echo -e '%admin ALL=(ALL) ALL' > $MPOINT/etc/sudoers
chroot $MPOINT aptitude clean
chroot $MPOINT chown nzion -v -R /home/$USER
chroot $MPOINT aptitude clean
rm -fv $MPOINT/etc/rc.local
echo 'export LANG=ru_RU.UTF-8
export LC_CTYPE="ru_RU.UTF-8"
export LC_NUMERIC="ru_RU.UTF-8"
export LC_TIME="ru_RU.UTF-8"
export LC_COLLATE="ru_RU.UTF-8"
export LC_MONETARY="ru_RU.UTF-8"
export LC_MESSAGES="ru_RU.UTF-8"
export LC_PAPER="ru_RU.UTF-8"
export LC_NAME="ru_RU.UTF-8"
export LC_ADDRESS="ru_RU.UTF-8"
export LC_TELEPHONE="ru_RU.UTF-8"
export LC_MEASUREMENT="ru_RU.UTF-8"
export LC_IDENTIFICATION="ru_RU.UTF-8"
exit 0
' > $MPOINT/etc/rc.local
umount $MPOINT/dev
umount $MPOINT/proc
umount /dev/sdc1
exit
С rc.local и русским языком может перемудрил, но хотел его гвоздями вбить :)
Имя хоста правим в скрипте.
В таком виде работает, только что поставил на флэшку....
У меня правда он еще копирует настроки всякие, в т.ч. zsh...
После этого можно навернуть иксы...
Проверить можно с помощью qemu / kvm:
kvm -hda /dev/sdc