Долго изголялся для создания LiveUSB с ArchLinux - в методах аля Arch-live не устраивали по причине невозможности изменения дистрибутива на лету простым и быстрым методом. Посему пришлось воспользоваться дедовскими методами (ага, тот самый Keep It Simple Stupid) установки ArchLinux на флешку.
Подготовка
1) Cоздаем на флешке один единственный основной раздел, проще всего это сделать через cfdisk или gparted
2) Создаем на этом разделе файловую систему
mke2fs -m 0 -b 1024 -i 4096 -L STICK /dev/sd*1Где STICK - это будущее имя раздела, а /dev/sd*1 это файл устройства.
3) Монтируем этот раздел mount /dev/sd*1 MNTDIR, где MNTDIR это точка монтирования
Установка и базовая настройка для загрузки с usb
4) Установка базовых пакетов
mkdir -p MNTDIR/var/lib/pacman
pacman -Sy -r MNTDIR filesystem bash sysvinit initscripts \
syslog-ng dcron kbd findutils openssh iputils kernel26 \
pacman dhcpcd (добавте свои пакеты)5) Не забываем о том что при загрузке с usb нам всё же надо будет примонтировать корневой раздел и каким sd* будет ваша флешка на том компе откуда вам взбредит с неё загрузиться неизвесно, поэтому в MNTDIR/etc/fstab добавляем строку
LABEL=STICK / ext2 defaults 0 0
или прописываем вместо LABEL=STICK UUID вашего раздела (узнать можно с помощью ls -l /dev/disk/by-uuid)
Так же не забываем про initcpio
sed -i 's/^HOOKS=.*$/HOOKS="base udev usb filesystems"/' MNTDIR/etc/mkinitcpio.confи генерируем новый образ инита chroot MNTDIR mkinitcpio -c /etc/mkinitcpio.conf -g /boot/kernel26.img Ну и последнее что нам осталось это настроить загрузчик.
Я привык к использованию GRUB хотя некоторые говорят что на usb-flash и cd лучше использовать syslinux. Поэтому придется показать оба способа, впрочем оба наипростейшие
GRUB
pacman -Sy -r MNTDIR grub
cd MNTDIR/usr/lib/grub/i386-pc/
cp ./* MNTDIR/boot/grub/Редактируем MNTDIR/boot/grub/menu.lst где в качестве root указываем либо LABLE либо UUID нашего разделаЗапускаем grub в котором вводим root (hd*,0) и setup (hd*)
Где * это номер нашей флешки, не забваем что в grub нумерация начинается с нуля, т.е. если у вас всего один жеский диск и вставлена всего одна флешка то надо писать root (hd1,0) и setup (hd1)
syslinux
Здесь всё немного проще
dd if=/usr/lib/syslinux/mbr.bin of=/dev/sd*
extlinux --install mntdir/boot
cat << EOF > MNTDIR/boot/extlinux.conf
default usbboot
label usbboot
kernel vmlinuz26
append initrd=kernel26.img root=STICK quiet
EOF
Честно говоря с syslinux у меня не сложилось, qemu ни как не хотел запускаться с флешки, хотя вообще с ArchLinux у qemu не сложилось - ни LiveCD ни LiveUSB в нём не загружались, хотя на реальном железе всё работало. С grub всё пошло как по малсу, да и возможности у него пошире будут (я, к примеру, использую запчасти с super grub disk)
Ну а теперь самое главное, перезагрузка в наш LiveUSB (не забываем выставить в BIOS необходимые настройки) и доводка его до того состояния которое вам необходимо, хотя доводить его можно и не перезагружаясь.
Честно говоря у данного способа есть недостатки, такие как большой объем занимаемого дискового пространства (1GB лично для моих нужд хватает), постоянное использование /tmp и прочего что никак не способствует долгой жизни флешки, но многое из этого (монтирование того же tmp в память) можно обойти.
Так что в итоге все плюсы с лихвой перекрывают немногочисленные минусы.
