Подготовка
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 в память) можно обойти.
Так что в итоге все плюсы с лихвой перекрывают немногочисленные минусы.