Виникла потреба встановлювати/відновлювати debian з флешки. Компютерів у господарстві багато а CD приводи не всюди є (бо і не треба). Проаналізувавши стандартний спосіб (див. джерело 1) вперся в обмеження vfat на розмір файлу 4Gb, образ DVD не поміщається. Тому вирішив застосувати комбінований спосіб: 2 розділи на флешці vfat і ext2. Використав 8Gb флешку, куди помістилася власне інсталяція Debian, LibreOffice і купа cпеціалізованих програм і примочок для роботи аптеки/касових апаратів/штрихкодових сканерів/... словом все, що треба, для розгортання робочих місць.
Ну і ось власне сам спосіб приготування флешки:
Припустимо, що флека розпізналяся ядром, як /dev/sdb. В іншому випадку приведені комади підкоректувати, щоб вказували правильний пристрій.
1. Розбиваємо диск на розділи з допомогою fdisk на /dev/sdb1=50M /dev/sdb2=решта.
2. Робимо файлову систему /dev/sdb1 і загрузчик
mkdosfs -I /dev/sda
syslinux /dev/sda
3. Монтуємо перший розділ
mount /dev/sdb1 /mnt
4. Качаємо інсталятор
boot.img.gz.
5. Розпаковуємо і монтуємо образ
gunzip boot.img.gz
mkdir tempboot
mount -o loop -t vfat ./boot.img tempboot
6. Копіюємо загрузчик на флешку
cp -n tempboot/* /mnt
7. Ставимо grub
grub-install --root-directory=/mnt /dev/sdb
8. Робимо /mnt/boot/grub/grub.cfg з наступним вмістом, де 6F21-DC35 замінити реальним UUID можна взнати "ls -l /dev/disk/by-uuid/ |grep sdb1"
if [ -s $prefix/grubenv ]; then
load_env
fi
set default="0"
if [ "${prev_saved_entry}" ]; then
set saved_entry="${prev_saved_entry}"
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi
function savedefault {
if [ -z "${boot_once}" ]; then
saved_entry="${chosen}"
save_env saved_entry
fi
}
function load_video {
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
}
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set 6F21-DC35
if loadfont /usr/share/grub/unicode.pf2 ; then
set gfxmode=640x480
load_video
insmod gfxterm
fi
terminal_output gfxterm
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set 6F21-DC35
set locale_dir=($root)/boot/grub/locale
set lang=uk
insmod gettext
set timeout=2
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set 6F21-DC35
insmod png
if background_image /usr/share/images/desktop-base/spacefun-grub.png; then
set color_normal=light-gray/black
set color_highlight=white/black
else
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
fi
menuentry 'Debian installer' {
set root=(hd0,1)
chainloader +1
}
if [ -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
9. Заміняємо вміст /mnt/adtxt.cfg на наступне, щоб одержати додаткові способи інсталяції в "Expert install";
label expert
menu label ^Expert install - gnome
kernel linux
append priority=low vga=788 initrd=initrd.gz --
label auto
menu label ^Automated install - gnome
kernel linux
append auto=true priority=critical vga=788 initrd=initrd.gz -- quiet
label expert-kde
menu label ^Expert install - kde
kernel linux
append desktop=kde priority=low vga=788 initrd=initrd.gz --
label auto-kde
menu label ^Automated install - kde
kernel linux
append desktop=kde auto=true priority=critical vga=788 initrd=initrd.gz -- quiet
label expert-xfce
menu label ^Expert install - xfce
kernel linux
append desktop=xfce priority=low vga=788 initrd=initrd.gz --
label auto-xfce
menu label ^Automated install- xfce
kernel linux
append desktop=xfce auto=true priority=critical vga=788 initrd=initrd.gz -- quiet
label expert-lxde
menu label ^Expert install - lxde
kernel linux
append desktop=lxde priority=low vga=788 initrd=initrd.gz --
label auto-kde
menu label ^Automated install - lxde
kernel linux
append desktop=lxde auto=true priority=critical vga=788 initrd=initrd.gz -- quiet
include rqtxt.cfg
10. Форматуємо /dev/sdb2
mkfs.ext2 /dev/sdb2
11. Розмонтовуємо /dev/sdb1 i монтуємо /dev/sdb2
umount /dev/sdb1
mount /dev/sdb2 /mnt
12. Скачуємо 1 DVD інсталяції (або CD якщо флешка мала) і поміщаємо в /mnt. Сюди ж додаємо інші потрібні файли (наприклад LibreOffice).
Розмонтовуємо /dev/sdb2 і пробуємо перегрузитися з флешки.
Джерела:
1.
Installing Debian from USB 2.
Using Grub2 and LUA installed on USB booting ISO images