Автор Тема: Создание LiveUSB  (Прочитано 8142 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Spitellon

  • Новичок
  • **
  • Автор темы
  • Сообщений: 11
    • Сайт свободных программ
Создание LiveUSB
« : Февраль 22, 2015, 15:47:13 »
Иногда на компьютере случаются ошибки которые не дают загрузить операционную систему. Для решения таких проблем требуется так называемая live-система загружаемая с дискеты, CD или флешки. Но на нетбуках нет дисководов и приходится загружаться с флешки.

Линукс на флешке намного лучше чем на CD, потому-что на флешкой можно пользоваться как винчестером.

Есть несколько популярных способов установки GNU/Linux на флешку, это:

Установка как на компьютер
Специальные утилиты, такие как https://linexp.ru/system-administration/unetbootin.html, https://linexp.ru/osdistro/tuxboot.html, https://linexp.ru/osdistro/live-usb-install.html, которые устанавливают только конкретно выбранные дистибутивы, причем своим специфическим способом отличным от того как мы устанавливаем операционную систему на компьютер
Копирование HDD-образа на флешку, на котором уже установлено выбранное автором программное обеспечение.

Мы рассмотрим способы как установить GNU/Linux на флешку так чтобы он работал как на винчестере.

Нам понадобится рабочий GNU/Linux, chroot, grub-install и gparted .
Откройте терминал и перейдите в учетную запись root: su или sudo su;

Способ первый. Установка как на компьютер

Понадобится CD или USB с установленным live линуксом с инсталлятором и флешка на которую будем устанавливать .
Установите исталлятор линукса на флешку программой типа Unetbootin.
На компьютере отключите все винчестеры.
В биосе первым загрузочным устройством установите флешку.
Вставсте две флешки: одну с инсталлятором и ту куда будем устанавливать и устанавливайте как на обычный компьютер.

Способ второй. Копирование рабочей системы GNU/Linux на флешку и установка загрузчика GRUB.

Шаг первый. Где лежит флешка ?
Найдем флешку с помощью программы gparted:

На скиншоте видно что флешка находится на разделе /dev/sdb1, имеет файловую систему ext4 (лучше поставьте jfs) и монтируется в /media/usb0. Если у вас на флешке файловая система типа fat/ntfs, то переформатируйте ее желательно в jfs.

Шаг второй. Монтирование флешки.
Примонтируем флешку: mount /dev/sdb1. Если флешка уже примонтирована то вы получите ошибку.

Шаг третий. Копирование рабочей системы GNU/Linux на флешку.
Так как /dev/sdb1 смонтирован на /media/usb0, скопируем всю систему на /media/usb0:
cp -RH --preserve=all / /media/usb0

Шаг четвёртый. Установка загрузчика 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
mount --bind /dev/pts  /media/usb0/dev/pts
chroot /media/usb0
Теперь нужно:

Установить ядро, например, aptitude install linux-image-3.2.0-4-686-pae
Установить загрузчик GRUB (например, aptitude install grub2.
Для поиска нужной версии ядра или grub, введите aptitude search linux.

Настройка GRUB:
Для начала убедимся что идентификатор 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 распознает флешку как /dev/sda а не /dev/sdb, тогда придется в файлах /etc/mtab, /etc/fstab, /boot/grub/grub.cfg заменить sdb на sda и sdb1 на sda1.

Все, LiveUSB готов, теперь настройте BISO на загрузку с флешек и пользуйтесь. Кстати, таким образом можно перекопировать рабочую систему на новый компьютер/винчестер.

После такой установки, необходимо указать сетевое имя компьютера на флешке, иначе Xserver будет ругаться: в файле /etc/hosts напротив 127.0.0.1 напишите такое имя как в файле /etc/hostname

Способ второй. Установка системы GNU/Linux на флешку при помощи инсталятора через Qemu, VirtualBox или Colinux

Скопировать системные файлы можно обычной установкой, только не на винчестер а на флешку. Можно запустить ISO-образ с установщиком в эмуляторе операционных систем, таком как Qemu или VirtualBox. Например, запустим установщик Debian 7.1.0 через qemu:
qemu -cdrom debian-7.1.0-i386-netinst.iso /dev/sdb1

После этого перейдите к шагу 4.

Способ четвёртый. Установка при помощи debootstrap и febootstrap

Эти утилиты устанавливают системы на основе Debian и Fedora в каталог уже установленной системы, но в качестве каталога можно указать флешку и перейти к <a href="#step4">шагу 4</a>. Установка Debian:
mkdir chroot
debootstrap wheezy ./chroot http://http.debian.net/debian/
Установка Ubuntu: debootstrap lucid ./lucid-c1 http://mirror.yandex.ru/ubuntu
В конце мы увидим такое:
I: Base system installed successfully. Базовая система установлена успешно.

Способ пятый. Установка CentOS на флешку.

aptitude install yum rpm wget
wget ftp://ftp.muug.mb.ca/mirror/centos/6.4/os/i386/Packages/centos-release-6-4.el6.centos.10.i686.rpm
rpm -ivh --force-debian --nodeps --root /media/usb0 ./centos-release-6-4.el6.centos.10.i686.rpm
yum --installroot /mnt/chroot/centos/ install yum
И переходим к <a href="#step4">шагу 4</a>.


Важно !

После такой необычной установки, необходимо указать сетевое имя компьютера на флешке, иначе Xserver будет ругаться: в файле /etc/hosts напротив 127.0.0.1 напишите такое имя как в файле /etc/hostname
Thunar, Nautilus и другие подобные программы, для монтирования устройств будут требовать ввести пароль или будут писать "Not authorized", решение этой проблемы вы найдёте в теме https://linexp.ru/advice/automount.html
Флешки работают медленнее винчестеров, поэтому SWAP лучше разместить на винчестере, можно не на отдельном разделе а в файле.
Как сделать swap-файл ?

Создадим пустой файл размером 200Mb:
dd if=/dev/zero of=swap bs=100000 count=2000
Создадим в нём SWAP:
mkswap swap
И подключим его к системе (это после загрузки нашей LiveUSB):
swapon swap.
Команда free -m покажет что своп подключен:
root@debian:/home/ura# free -m
             total       used       free     shared    buffers     cached
Mem:           999        979         20          0          0        221
-/+ buffers/cache:        757        242
Swap:          190          0        190

Отключаем SWAP так:
swapoff

Для автоматического подключения свопа, нужно указать его в файле /etc/fstab.
Просто добавьте в /etc/fstab строку:
"путь к файлу"/swapfile none swap defaults 0 0

Подробно о создании файла подкачки можно почитать здесь: https://linexp.ru/advice/swap.html
« Последнее редактирование: Июнь 27, 2022, 19:29:24 от Spitellon »

Оффлайн RoPP

  • Активист
  • ****
  • Сообщений: 257
Re: Создание LiveUSB
« Ответ #1 : Февраль 22, 2015, 19:53:51 »
Цитировать (выделенное)
Способ второй. Копирование рабочей системы GNU/Linux на флешку и установка загрузчика GRUB.
...
Установить ядро, например, aptitude install linux-image-3.2.0-4-686-pae
а это зачем? мы же рабочую систему копируем  ???

Оффлайн runtik

  • Местный
  • *****
  • Сообщений: 578
  • Проблема - когда нет проблем
Re: Создание LiveUSB
« Ответ #2 : Февраль 24, 2015, 08:44:08 »
Цитировать (выделенное)
Есть несколько популярных способов установки GNU/Linux на флешку
Всё это уже давно описано на форуме.
Коллега Spitellon, а что такое
Цитировать (выделенное)
теперь настройте BISO
и как его настроить.
Runtu XFCE x64: EeePC 1015BX - 16.04.5; DNS Porto - 14.04.5.
-->

Оффлайн sfs

  • Местный
  • *****
  • Сообщений: 722
    • PuppyRus-Arch
Re: Создание LiveUSB
« Ответ #3 : Февраль 24, 2015, 11:52:03 »
Мы рассмотрим способы как установить GNU/Linux на флешку так чтобы он работал как на винчестере.
Это очень спорно на уровне идеи: износ флэшки, тормоза , убиваемость
Лучше грузить squashfs в RAM

Вот перспективная реализация этой идеи с претензией на универсальность
У меня получилось под uird запустить рунту лайт
« Последнее редактирование: Февраль 24, 2015, 12:29:43 от sfs »

Оффлайн vlad51

  • Новичок
  • **
  • Сообщений: 12
  • Runtu 14.04.4 XFCE 32b
Re: Создание LiveUSB
« Ответ #4 : Март 23, 2016, 08:25:38 »
Есть несколько популярных способов установки GNU/Linux на флешку, это:
Установка как на компьютер
Специальные утилиты, такие как http://libreportal.net/system-administration/unetbootin.html

Воспользовался утилитой UNetbootin
Для этого скачал дистрибутив Runtu XFCE 14.04 (мне он очень нравится)
Скопировал в папку tmp (как администратор)
Запустил UNetbootin;
поставил отметку на запись с образа диска;
нашел на компьютере папку tmp и в ней образ Runtu XFCE 14.04;
далее ОК

https://www.youtube.com/watch?v=NAjjvtGaZTY

UNetbootin устанавливал с помощью  Synaptic

https://www.youtube.com/watch?v=S0OqU6lq7i4

Ubuntu/LinuxMint/Xubuntu/Lubuntu/Runtu

Оффлайн mixahulk

  • Прохожий
  • *
  • Сообщений: 3
Re: Создание LiveUSB
« Ответ #5 : Ноябрь 12, 2016, 14:35:46 »

Есть несколько популярных способов установки GNU/Linux на флешку, это:

Установка как на компьютер
Специальные утилиты, такие как http://libreportal.net/system-administration/unetbootin.html, http://libreportal.net/osdistro/tuxboot.html, http://libreportal.net/osdistro/live-usb-install.html, которые устанавливают только конкретно выбранные дистибутивы, причем своим специфическим способом отличным от того как мы устанавливаем операционную систему на компьютер
Копирование HDD-образа на флешку, на котором уже установлено выбранное автором программное обеспечение.

А я пользуюсь совсем другими утилитами: USBWriter для Windows, Руфус. Кстати для Rufus есть много видео учебников. Можно самому все сделать