Загрузочный USB-диск с Linux
Материал из Xgu.ru
Автор: Сергей Черепенин
Правильная ссылка: [1]
На этой странице детально описывается процедура подготовки USB-носителя для использования в качестве загрузочного устройства. На носитель устанавливается операционная система Debian GNU/Linux.
Содержание |
[править] Подготовка USB-устройства
Для создания USB-загрузочного устройства рекомендуется в первую очередь очистить таблицу разделов на этом устройстве:
%# fdisk -l /dev/sda Disk /dev/sda: 1031 MB, 1031798784 bytes 32 heads, 62 sectors/track, 1015 cylinders Units = cylinders of 1984 * 512 = 1015808 bytes Device Boot Start End Blocks Id System
Далее создаем раздел на flash-диске:
%# fdisk -l /dev/sda Disk /dev/sda: 1031 MB, 1031798784 bytes 32 heads, 62 sectors/track, 1015 cylinders Units = cylinders of 1984 * 512 = 1015808 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 1015 1006849 83 Linux
Теперь создадим файловую систему на вновь созданном разделе:
%# mkfs.ext3 /dev/sda1 mke2fs 1.40-WIP (14-Nov-2006) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 125952 inodes, 251712 blocks 12585 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=260046848 8 block groups 32768 blocks per group, 32768 fragments per group 15744 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376 Writing inode tables: done Creating journal (4096 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 26 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.
[править] Установка базовой системы на FLASH-устройство
Монтируем этот раздел:
%# mount /dev/sda1 /mnt
Скопируем с ближайшего зеркала (пусть, например, это http://debian.org.ua/debian) в каталог /mnt базовую операционную систему Debian при помощи команды debootstrap
%# debootstrap etch /mnt http://debian.org.ua/debian I: Retrieving Release I: Retrieving Packages I: Validating Packages I: Resolving dependencies of required packages... I: Resolving dependencies of base packages... . . . . I: Configuring tasksel-data... I: Configuring sysklogd... I: Configuring tasksel... I: Base system installed successfully.
[править] Настройка загрузчика GRUB
Все необходимые файлы для нормальной работы загрузчика находятся в каталоге /mnt/boot
%# ls -l /mnt/boot/ итого 0
Как видно, он пуст и следовательно при установке системы командой debootstrap в этот каталог ничего не копируется. Все файлы (за исключением device.map создадутся во время инсталляции загрузчика. Для создания файла device.map сначала необходимо создать каталог /mnt/boot/grub:
%# mkdir /mnt/boot/grub
И создадим нужный нам файл:
%# echo '(hd0) /dev/sda' > /mnt/boot/grub/device.map %# cat /mnt/boot/grub/device.map (hd0) /dev/sda
Теперь можно приступать к установке загрузчика. Установка выполняется командой grub-install. Опция --root-directory указывает на необходимость установки в указанное дерево каталогов, а не в системный корневой каталог:
%# grub-install --root-directory=/mnt --no-floppy '(hd0)' Installation finished. No error reported. This is the contents of the device map /mnt/boot/grub/device.map. Check if this is correct or not. If any of the lines is incorrect, fix it and re-run the script `grub-install'. (hd0) /dev/sda
Проверяем каталог /mnt/boot/grub:
%# ls -l /mnt/boot/grub/ итого 180 -rw-r--r-- 1 root root 197 2007-01-24 22:02 default -rw-r--r-- 1 root root 15 2007-01-24 22:01 device.map -rw-r--r-- 1 root root 7584 2007-01-24 22:02 e2fs_stage1_5 -rw-r--r-- 1 root root 7424 2007-01-24 22:02 fat_stage1_5 -rw-r--r-- 1 root root 8192 2007-01-24 22:02 jfs_stage1_5 -rw-r--r-- 1 root root 6848 2007-01-24 22:02 minix_stage1_5 -rw-r--r-- 1 root root 9280 2007-01-24 22:02 reiserfs_stage1_5 -rw-r--r-- 1 root root 512 2007-01-24 22:02 stage1 -rw-r--r-- 1 root root 108392 2007-01-24 22:02 stage2 -rw-r--r-- 1 root root 8904 2007-01-24 22:02 xfs_stage1_5
Для загрузки системы необходимо ядро и виртуальный загрузчик initrd, debootstrap не копирует их с зеркала:
# ls -l /mnt/boot/ итого 4 drwxr-xr-x 2 root root 4096 2007-01-24 22:02 grub
Мы можем либо установить, либо скопировать предварительно скомпилированное ядро и загрузчик:
ls -l /mnt/boot/ итого 6140 drwxr-xr-x 2 root root 4096 2007-01-24 22:02 grub -rw-r--r-- 1 root root 4512197 2007-01-24 22:06 initrd.img-2.6.19.2 -rw-r--r-- 1 root root 1753024 2007-01-24 22:07 vmlinuz-2.6.19.2
Кроме самого ядра и загрузчика необходим еще и каталог с модулями установленного ядра:
%# ls -l /mnt/lib/modules/ итого 0
Скопируем и его на примонтированную флешку:
%#ls -l /mnt/lib/modules/ итого 4 drwxr-xr-x 3 root root 4096 2007-01-24 22:16 2.6.19.2
Теперь создалим файл-меню загрузчика:
# cat /mnt/boot/grub/menu.lst timeout 5 title USB Disk Boot kernel /boot/vmlinuz-2.6.19.2 root=/dev/sda1 ro vga=792 initrd /boot/initrd.img-2.6.19.2
Последним необходимым шагом будет редактирование файла /mnt/etc/fstab:
%# cat /mnt/etc/fstab /dev/sda1 / ext3 errors=remount-ro 0 1 proc /proc proc defaults 0 0
[править] Заключение
Размер базовой операционной системы вместе с ядром, его модулями и виртуальным загрузчиком составляет 239 Мб. Далее можно уже установить весь необходимый минимум програмного обеспечения, в зависимости от тех задач, которые планируются решать при помощи подготовленного загрузочного устройства.
Установить новое программное обеспечение можно традиционно, загрузившись с него, или с другой системы Debian GNU/Linux. Во втором случае нужно примонтировать носитель в каталог файловой системы и сделать в него chroot:
%# mount /dev/sda1 /mnt %# chroot /mnt %# apt-get install screen
В данном случае будет установлен пакет screen.
Обратите внимание на содержимое файла /etc/apt/sources.list. Файл будет содержать имя того репозитория, который использовался при инсталляции системы командой deboostrap.
[править] Установка системы на ноутбук без CD/DVD привода
[править] Способ 1. "Для чайников"
Если на машине установлена Windows и с нее можно загрузиться, то качаем файлик http://goodbye-microsoft.com/pub/debian.exe и нажав пару раз кнопку "Далее" попадаем в привычный инсталлятор debian.
Более подробно тут.
Замечания к данному способу: у автора на этапе установки система не смогла определить сетевую карту (скорее всего не были включены в ядре соответствующие модули, т.к. при загрузке с того же knoppix никаких проблем не было). Так или иначе, сетевая установка стала невозможной.
[править] Способ 2. Использование boot.img.gz
Для этого нам нужна еще одна машина с Linux.
Согласно документации для реализации данного способа следует выкачать два файла:
- boot.img.gz из раздела hd-media (например, для стабильной ветки это файл размером ~16Mb)
- любой установочный iso-образ
Далее запихиваем в комп флешку (не монтируя), определяем устройство, которое будет ее отображать:
# tail /var/log/messages Nov 8 19:02:32 home kernel: [22356.521167] usb 5-5: Manufacturer: JetFlash Nov 8 19:02:32 home kernel: [22356.521171] usb 5-5: SerialNumber: GV3PQ9IG Nov 8 19:02:37 home kernel: [22361.546033] scsi 6:0:0:0: Direct-Access JetFlash TS4GJFV30 8.07 PQ: 0 ANSI: 2 Nov 8 19:02:37 home kernel: [22361.546691] sd 6:0:0:0: [sdb] 7987200 512-byte hardware sectors (4089 MB) Nov 8 19:02:37 home kernel: [22361.549798] sd 6:0:0:0: [sdb] Write Protect is off Nov 8 19:02:37 home kernel: [22361.551320] sd 6:0:0:0: [sdb] 7987200 512-byte hardware sectors (4089 MB) Nov 8 19:02:37 home kernel: [22361.551699] sd 6:0:0:0: [sdb] Write Protect is off Nov 8 19:02:37 home kernel: [22361.551699] sdb: Nov 8 19:02:37 home kernel: [22361.650337] sd 6:0:0:0: [sdb] Attached SCSI removable disk Nov 8 19:02:37 home kernel: [22361.650337] sd 6:0:0:0: Attached scsi generic sg2 type 0
В данном случае это sdb и выполняем
zcat /home/download/boot.img.gz > /dev/sdb
Далее монтируем флешку и обычным способом копируем на нее iso-образ
Замечания к данному способу:
- Надо следить за тем, чтобы совпадали версии debian в boot.img.gz и iso-образе (если один из файлов собран, например, для etch, а второй для sid, то инсталлятор при установке скажет, что не соответствуют версии ядра и модулей к нему и откажется что-либо устанавливать).
- Указанным выше способом на флешке разметилась область размером ~250Mb и следовательно на нее можно было записать только netinst.iso (businesscard.iso копировать не имеет смысла, а расширять раздел и копировать на него полноценный CD или DVD не было времени).
[править] Способ 3. "Для гуру"
Если есть машина с Linux, то согласно приведенному в начале статьи способу устанавливаем debian на флешку, а потом тем же способом на жесткий диск ноутбука...
[править] Способ 4. "unetbootin"
Если есть машина с Windows, то используя программку unetbootin записываем на флешку Debian Live CD (или еще лучше USB) загружаемся с нее, а далее то же.
Замечания к данному способу:
- При использовании Debian-netinstall, инсталлятор будет искать CD диск (с драйверами, в том числе и для сетевых устройств) и не найдя его выдаст сообщение о невозможности установки.
[править] Дополнительня информация
- Как установить Debian Linux с USB flash
- Debian EeePC Install
- USB Based FAQ - Knoppix на USB-диске
- http://rz-obrian.rz.uni-karlsruhe.de/knoppix-usb/ - Knoppix на USB-диске (альтернативный способ)
- http://adoldo.wordpress.com/2007/01/15/pendrive-boot-con-knoppix-51/ - Knoppix на USB-диске (альтернативный способ)
[править] Материалы на Xgu.ru посвящённые загрузке системы
- GRUB
- Загрузочный USB-диск с Linux
- Загрузочный USB-диск с FreeBSD
Бездисковая загрузка:
- PXE
- pxe/rhel — Инсталляция RHEL/CentOS с помощью PXE
- Бездисковая загрузка FreeBSD с помощью PXE
- Бездисковая загрузка узла Xen с помощью PXE
- pxe/win7 — Бездисковая загрузка Windows 7 с помощью PXE
- pxe/win2008 — Бездисковая загрузка Windows Server 2008 с помощью PXE