Линукс на флешке намного лучше чем на CD, потому-что на флешкой можно пользоваться как винчестером.
Есть несколько популярных способов установки GNU/Linux на флешку, это:
Unetbootin, который устанавливает только конкретно выбранные дистибутивы, причем своим специфическим способом отличным от того как мы устанавливаем операционную систему на компьютер;
Grub4Dos, который устанавливает на флешку ISO-образ, делая невозможным запись внутри Live-системы
Мы рассмотрим способы как установить GNU/Linux на флешку так чтобы он работал как на винчестере.
Нам понадобится рабочий GNU/Linux, chroot и grub-install и gparted .
Откройте терминал и перейдите в учетную запись root: su или sudo su;
Найдем флешку с помощью программы gparted:
![Изображение](http://libreimg.com/thumbs/2013-08/27/4swf5zlxg6m672cv8mkzki29p.png)
На скиншоте видно что флешка находится на разделе /dev/sdb1, имеет файловую систему ext4 (лучше поставьте jfs) и монтируется в /media/usb0. Если у вас на флешке файловая система типа fat/ntfs, то переформатируйте ее желательно в jfs.
Шаг второй. Монтирование флешки.
Примонтируем флешку: mount /dev/sdb1. Если флешка уже примонтирована то вы получите ошибку.
Шаг третий. Копирование рабочей системы GNU/Linux на флешку.
Теперь запустите с правами root файловый менеджер и скопируйте свою рабочую установленную систему на флешку, то есть cp -r / /dev/sdb1
Шаг четвёртый. Установка загрузчика GRUB в основную загрузочную запись (Master Boot Record (MBR)) флешки.
LiveUSB почти готов, теперь надо установить загрузчик на флешку:
Флешка у нас примонтирована в /media/usb0, переходим в LiveUSB:
mount /proc /media/usb0/proc -t proc
mount /sys /media/usb0/sys -t sysfs
mount --bind /dev /media/usb0/dev
chroot /media/usb0
Установим загрузчик:
Для начала убедимся что идентификатор UUID флешки соответствует тому что прописан в файле /boot/grub/grub.cfg :
root@debian:~# blkid
/dev/sda1: UUID="7334ce7d-bc4a-418f-abbf-4c90b41389a0" TYPE="jfs"
/dev/sda3: UUID="cdd3f943-30c5-49b1-b368-99f367263990" TYPE="jfs"
/dev/sda4: UUID="0261569b-b783-4986-b3b0-a3707a2812e4" TYPE="jfs"
/dev/sda5: UUID="8b9a7c86-ff41-49fb-809f-67be3d255b7c" TYPE="jfs"
/dev/sda6: UUID="1b698fc8-d7c7-4715-8a62-9ce2828afdd1" TYPE="swap"
/dev/sdb1: UUID="c1076eed-06df-4c63-a7c3-ee6fed84f155" TYPE="jfs"
root@debian:~#
Кусок файла /boot/grub/grub.cfg:
menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-686' --class debian --class gnu-linux --class gnu --class os {
insmod part_msdos
insmod ext2
set root='(hd1,msdos1)'
search --no-floppy --fs-uuid --set c1076eed-06df-4c63-a7c3-ee6fed84f155
echo 'Loading Linux 2.6.32-5-686 ...'
linux /boot/vmlinuz-2.6.32-5-686 root=UUID=c1076eed-06df-4c63-a7c3-ee6fed84f155 ro quiet
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-2.6.32-5-686
}
menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-686 (recovery mode)' --class debian --class gnu-linux --class gnu --class o$
insmod part_msdos
insmod ext2
set root='(hd1,msdos1)'
search --no-floppy --fs-uuid --set f566a638-5df0-4dfd-95fc-49e4c9e8cc9e
echo 'Loading Linux 2.6.32-5-686 ...'
linux /boot/vmlinuz-2.6.32-5-686 root=UUID=f566a638-5df0-4dfd-95fc-49e4c9e8cc9e ro single
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-2.6.32-5-686
}
Установим загрузчик GRUB:
grub-install /dev/sdb. Обратите внимание, мы устанавливаем загрузчик на /dev/sdb а не на /dev/sdb1. Если UUID в файле /boot/grub/grub.cfg не соответствует тому что вывела программа blkid, LiveUSB не запустится и после того как вы исправите UUID нужно заново запустить команду grub-install /dev/sdb.
Все, LiveUSB готов, теперь настройте BISO на загрузку с флешек и пользуйтесь. Кстати, таким образом можно перекопировать рабочую систему на новый компьютер/винчестер.
Небольшая видеоподсказка по теме:
http://www.youtube.com/embed/b4SnvlSr6kU