Меню

Убунту на внешнем жестком диске



Приемы работы в Ubuntu.
Глава 1. Приступаем к работе

Совет # 10: Устанавливаем Ubuntu на внешнем диске

Вы можете установить систему Ubuntu, загружать ее и полностью с ней работать с устройства FireWire, USB или другого внешнего диска, но для этого требуется некоторая специальная настройка. Ниже мы с начала и до конца опишем процесс такой настройки.

В процессе работы над этой книгой мы поняли, что является главным недостатком использования ноутбука в качестве основного компьютера: значительно сложнее заменять жесткие диски при тестировании систем. Нам потребовалось настроить систему Ubuntu так, чтобы можно было проверять различные приемы и конкретные настройки системы, но, если было бы можно, мы бы не хотели перераспределять разделы основного жесткого диска ноутбука и переустанавливать систему. Нами было принято решение установить систему Ubuntu на внешний носитель и запускать ее оттуда; таким образом, обычная система осталась нетронутой, но мы можем запускать систему Ubuntu тогда, когда это нужно.

К сожалению, этот вариант установки не будет автоматически работать без некоторой настройки из-за нескольких причин:

  • По умолчанию в файле initrd (исходный ram-диск), который используется Ubuntu, отсутствуют драйверы, необходимые для загрузки с внешнего устройства. Ваш BIOS без проблем обнаружит ваше устройство (при условии, что он поддерживает загрузку со съемных дисков), но как только будет загружено ядро, Linux не сможет обнаружить и смонтировать диск для продолжения процесса загрузки.
  • Даже если в initrd есть соответствующие драйвера, ядру, прежде чем оно попытается их использовать, потребуется несколько секунд для загрузки этих модулей и обнаружения съемного диска. В течение этого времени, система, скорее всего, попытаться загрузиться и не сможет найти съемный диск, поскольку его конфигурирование не будет к этому моменту завершено.
  • Инсталлятор Ubuntu очень удобен тем, что он пытается обнаружить другие операционные системы, которые вы могли установить в системе, и для каждой ОС добавляет запись в загрузчик GRUB. К сожалению, это означает, что каждая ОС должна находиться на внутреннем жестком диске, которым является первый диск, указанный в BIOS, тогда как съемный диск будет вторым (либо третьим или четвертым, если у вас в системе есть другие диски). Когда BIOS выполняет загрузку со съемного диска, он будет сконфигурирован в системе как первый диск, что вызовет проблемы в GRUB.

В этом разделе мы рассмотрим, как решить каждую из этих проблем так, чтобы можно было установить Ubuntu на съемный диск и загружаться с него.

Настройка разделов диска

Первым шагом является запуск процесса установки Ubuntu точно такого же, как и при любых других вариантах установки, поэтому выполняйте все, о чем читали в разделе «Устанавливаем Ubuntu» [Совет # 5] до того момента, пока вы не дойдете до этапа переразметки диска на разделы. Когда Ubuntu перейдет к разметке диска, обратите внимание, что по умолчанию, вероятно, будет взят какой-нибудь из имеющихся в системе внутренних дисков IDE или SCSI. Если в вашей системе используется устройство IDE, вы можете выбрать внешний диск, указав для этого обнаруженный системой SCSI диск. Строчка, относящаяся к диску, вероятно будет иметь вид «SCSI (0,0,0) (sda)». Если у вас в системе уже есть SCSI диск, то найти диск USB будет немного сложнее, но, скорее всего, это будет последний указанный в системе SCSI диск.

Предостережение

Вы должны быть абсолютно уверены в том, что на этом этапе выбрали нужный диск, поскольку Ubuntu отформатирует и переразметит выбранный вами диск и удалит все данные, которые на нем могли быть. Если вы не знате, какой выбрать диск, загрузитесь с помощью Ubuntu Live CD и проверьте имена устройств (sda, sdb и т.д.), назначеные в вашей системе различным дискам.

Читайте также:  Отказ контроллера жесткого диска

Установка GRUB

После того, как вы выберете для форматирования соответствующее устройство, продолжайте процесс установки Ubuntu до тех пор, пока не доберетесь до стадии настройки загрузчика GRUB. Здесь вам будет задан вопрос, хотите ли вы загрузить GRUB на внутренний жесткий диск в главную загрузочную запись MBR. Вы не должны этого делать, поскольку это приведет к перезаписи загрузчика, который используется в системе. Вместо этого ответьте No («Нет») и в окне, которое появится следующим, укажите /dev/sda (или любое другое имя устройства Linux, которое присвоено съемному диску) с тем, чтобы можно было установить GRUB прямо на съемный диск.

Используем chroot

Затем продолжаем процесс установки Ubuntu до того момента, когда вам будет предложено выбрать Continue («Продолжить») и перезагрузить систему. Прежде, чем перезагружаться, вам нужно будет сделать в системе несколько настроек. Инсталлятор Ubuntu, фактически, позволяет войти в основную консоль, которую вы можете использовать для запуска в системе некоторых ограниченных команд. Нажмите на клавиши Alt-F2, чтобы перейти к этой консоли, а затем для ее активации нажмите клавишу Enter.

Теперь нужно подготовить съемный диск, поэтому вы можете воспользоваться командой chroot и изменить некоторые файлы. На самом деле съемный диск будет смонтирован в директории /target , а первым шагом является монтирование на этом устройстве специальной файловой системы /proc :

Теперь вы можете воспользоваться командой chroot для того, чтобы превратить директорий /target в действующий раздел системы. Таким образом, вы можете запускать команды, как будто бы вы загрузились с этого диска:

Настраиваем initrd

Как только будет выполнена команда chroot, первое, что надо будет сделать, это добавить те модули Linux, которые сделают ваш съемный диск доступным для initrd. В файле /etc/mkinitramfs/modules вы можете указать дополнительные модули, которые будут добавлены в initrd, так что воспользуйтесь консольным текстовым редактором, который вам нравится, и отредактируйте этот файл. Если у вас нет любимого консольного текстового редактора, просто воспользуйтесь редактором vim (если вы незнакомы с vim, то посмотрите в разделе «Редактирование конфигурационных файлов» [Совет # 74] примеры использования vim):

Как только этот файл будет открыт, перейдите в самый конец файла, добавьте следующие несколько строк, затем сохраните изменения и закройте файл:

Подсказка

Если ваше съемное устройство подключено через разъем IEEE1394, то также добавьте следующую строку:

а для других устройств — просто добавьте в этот файл те модули, которые нужны для этих устройств.

Как только модули будут правильно сконфигурированы, следующим шагом будет настройка демона initrd так, чтобы он ждал несколько секунд перед тем, как продолжить загрузку. Таким образом, у Linux будет время для обнаружения и конфигурирования съемного диск. Откройте в текстовом редакторе файл /etc/mkinitramfs/initramfs.conf :

Для того, чтобы Linux подождал несколько секунд перед тем, чем завершить процесс загрузки, добавьте теперь в самое начало файла новый параметр

По нашему опыту, десяти секунд вполне достаточно для загрузки Linux с диска USB, но вы можете, если это потребуется, изменить это значение на большее или меньшее. Сохраните ваши изменения и закройте файл.

Теперь вы можете с помощью специального инструмента mkinitramfs заново пересоздать файл initrd, в котором уже будут добавлены новые настройки:

Читайте также:  Устранение неполадок съемного жесткого диска

Измените пути initrd.img и /lib/modules так, чтобы они соответствовали той версии ядра, которая используется в вашем инсталляционном CD.

Изменяем настройку GRUB

Последний шаг состоит в изменении некоторых настроек в конфигурационном файле GRUB. Инсталлятор Ubuntu настраивает внешнее устройство (или второй диск, указанный в BIOS) как устройство hd1, но вам нужно, чтобы внешний диск был устройством hd0, поскольку это устройство будет первым системным устройством в BIOS, когда с него будет осуществляться загрузка. В текстовом редакторе откройте файл GRUB menu.lst :

и найдите строки, которые касаются корневого устройства GRUB. Они будут выглядеть примерно так:

Измените последнюю строку с тем, чтобы она указывала на устройство hd0 :

Далее, найдите в файле раздел, в котором указаны ссылки на различные ядра Ubuntu. Он должен выглядеть примерно так:

Теперь замените все ссылки на устройство hd1 ссылками на hd0 :

Если Ubuntu обнаружила и создала конфигурацию для других ОС и вы хотите этим также воспользоваться, просто для каждой ОС выполните те же самые изменения для конфигурационного параметра root — только замените hd0 на hd1 . Затем сохраните ваши изменения и закройте файл.

Теперь вы можете выйти из режима действия команды chroot, так что наберите в консоле команду exit, а затем нажмите клавиши Alt-F1 для возврата в основную консоль установки Ubuntu. Теперь можно выбрать вариант Continue («Продолжить») для того, чтобы перезагрузить машину и запустить установленную систему.

Подсказка

Имейте в виду, что в большинстве компьютеров нельзя выбрать по умолчанию загрузку со съемного диска в случае, если есть CD-ROM или другой жесткий диск. В некоторых BIOS есть возможность задать настройку так, что при нажатии специальной клавиши во время загрузки (например, F12) вы сможете выбрать, с какого устройства нужно загружаться. В других BIOS для того, чтобы войти в BIOS и настроить порядок загрузки устройств, вам, возможно, потребуется нажать одну из клавиш Esc, F2 или Del.

Источник

Убунту на внешнем жестком диске

Установка Ubuntu на внешний носитель (флешку или жесткий диск) в режиме EFI

Ежегодного после Software Freedom Day проходит уже ставший традиционным Linux Install Fest, где все желающие могут получить помощь в установке дистрибутива GNU/Linux на свои ноутбуки.

Вообще говоря, процедура установки современного дистрибутива GNU/Linux вроде Ubuntu не представляет никаких сложностей, даже в том случае, если его необходимо установить рядом с Windows 8/10 в режиме UEFI и включенным Secure Boot.

Но что делать, если требуется поставить GNU/Linux в режиме UEFI на внешний жесткий диск, флешку или карту памяти?

Казалось бы, вставляешь внешний носитель, и устанавливаешь GNU/Linux стандартным образом.

Но, к сожалению, все не так просто. Если вы начнете устанавливать GNU/Linux в таком режиме, то после перезагрузки вы уже не сможете загрузиться с внутреннего жесткого диска при отключенном внешнем носителе.

Проблема заключается в том, что при вызове update-grub обновляется содержимое NVRAM UEFI. Туда прописывается адрес EFI файла который находится на внешнем носителе, а информация о том, как грузиться со встроенного жесткого диска удаляется. Более подробно о процессе загрузке можно почитать здесь: http://www.rodsbooks.com/efi-bootloaders/installation.html

Зачем вообще ставить GNU/Linux на внешний носитель? Причины могут быть различны. Например, я столкнулся с проблемой, что на встроенном диске недостаточно места для установки двух ОС. Серьезно, в ноутбуке был установлен SSD объемом 32ГиБ, чего с трудом хватало даже для работы голой Windows 8.1.

Читайте также:  Уничтожитель для жестких дисков

Так же многие новички боятся ставить незнакомую ОС на свой компьютер, или не уверены, нужна ли она им вообще, а попробовать хочется. В этом случае флешка с полноценным GNU/Linux идеальный вариант. (Не просто LiveUSB, а полноценно установленная ОС, как если бы она была установлена на жесткий диск, чтобы оценить все её достоинства).

Все, что описано ниже, рассчитано на опытного пользователя GNU/Linux. Все, что вы делаете — Вы делаете на свой страх и риск. Автор не несет никакой ответственности за Ваши действия или бездействия, которые повлекли за собой порчу или полную потерю Ваших данных.

В качестве примера будем ставить на внешний диск Ubuntu 16.04.

В качестве хост-системы используется Kubuntu 16.04.

Потребуется следующий набор ПО:

Для начала скачаем образ Ubuntu 16.04:

Затем создадим пустой файл, который будет использоваться в качестве виртуального жесткого диска. (Инсталлятор Ubuntu 16.04 требует как минимум 9ГиБ свободного места на диске, но мы возьмем чуть больше — 10ГиБ)

Создадим vmdk, чтобы этот “диск” можно было подключить в VirtualBox:

Теперь приступим к созданию виртуальной машины со следующими характеристиками:

  • тип ОС GNU/Linux
  • в качестве жесткого диска указать созданный выше виртуальный диск
  • включить загрузку через EFI

Теперь запускаем виртуальную машину, выбираем загрузочный диск, устанавливаем и настраиваем систему.

Из ньюансов: я рекомендую сделать разбивку жесткого диска следующим образом:

  • первый раздел EFI, размер 500МиБ
  • второй раздел ext4, точка монтирования ‘/’, все оставшееся место
  • раздел swap создавать не нужно, т.к. во первых скорее всего на медленной флешке он будет очень сильно фризить систему, во вторых это увеличит размер установочного образа, что потребует больше времени на заливку его на целевую флешку(или жесткий диск). В конце концов, swap раздел можно создать потом, или же вообще обойтись swap файлом, чего более чем достаточно.

Почему-то после установки Ubuntu VirtualBox отказался грузить установленную систему. При повторной установке проблем не возникло. Странно. Потом нужно будет разобраться.

После установки необходимо немного порпавить конфигурационные файлы grub.

Для того, чтобы grub не трогал память NVRAM UEFI необходимо отредактировать файл /etc/grub.d/30_uefi-firmware следующим образом: добавить exit 0 сразу после #!/bin/sh :

Но это еще не все, по умолчанию UEFI ищет загрузочные образы не в том месте, куда их кладет grub, поэтому нам нужно создать еще один скрипт /etc/grub.d/42_custom со следующим содержанием:

и сделать его исполняемым

Вот и все! Теперь осталось обновить загрузчик и можно приступать к копированию образа на реальный диск:

Далее вам следует быть предельно острожным, и не перепутать буквы диска. Будьте внимательны. Так же Вам необходимо выполнять все нижеописанные команды от имени суперпользователя.

Для эксперимента возьмем внешний жесткий диск и зальем на него созданный образ:

теперь запустим GParted и выставим нужный размер разделов (При запуске GParted скорее всего ругнется, что геометрия диска /dev/sdX не совпадает с таблицей разделов. Смело жмем “Fix”)

Теперь можно подключать жесткий диск к ноутбуку смело загружаться в GNU/Linux!

В случае, если потребуется добавить своп, то можно воспользоваться следующим рецептом:

Создаем своп файл (от имени суперпользователя):

И добавляем в конец /etc/fstab следующую строку:

На этом, пожалуй, все. Всем добра и пингвинов!

Ссылки

Все материалы сайта, если не указано иное, распространяется под лицензией Creative Commons Attribution-ShareAlike 4.0 International License (c) Алексей Дураченко.

Источник