Linux не переносной жесткий диск

Linux не переносной жесткий диск

Установка 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!

Читайте также:  Linux firewall with gui

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

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

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

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

Ссылки

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

Источник

Установка Linux Mint на внешний HDD с сохранением на нём данных

Всем добрый день! Извините за вопрос новичка. Возник такой вопрос — как установить Linux Mint с загрузочной флешки на внешний жёсткий диск, притом так, чтобы grub 100% не записывался на внутренний HDD с виндой, чтобы только на внешний записался? Разумеется, и винду оставить тоже. Кроме того, необходимо сохранить уже имеющиеся на внешнем диске более терабайта данных. Я выделил для Linux 100 Гб свободного пространства перед основным разделом с моими данными с помощью Acronis Disk Director, соответственно раздел с данными был сжат. Можно ли будет создать на вот этом пространстве разделы для Linux (swap, /home, /), не тронув уже имеющийся раздел, не форматировать его, и вписать grub только на внешний, без таких странных вещей, как извлечение жёсткого диска из компа? И что будет в итоге? В идеале хочется, чтобы при подключенном внешнем загружался grub и предлагал выбрать винду или линукс, а при отсутствии внешнего просто сразу грузилась винда. Windows 10, внутренний диск — GPT, внешний — MBR.

  • выбираешь ручную разметку
  • выбираешь внешний диск
  • выбираешь пустое пространство
  • создаешь там два развела в ext4 и если режим UEFI то самый первый пару сотен мегабайт efi-раздел. Один раздел под корень, один под /home.

Потом в вопросе куда ставить загрузчик GRUB указываешь внешний диск. Винда добавится сама. После этого в UEFI/BIOS компа указываешь по умолчанию грузиться с внешнего диска (или пункт GRUB-а для записей efi) или просто каждый раз выбираешь в «быстром» меню (вызывается при инициализации в начале загрузки клавишами ESC или F2, F8 — зависит от модели) откуда загружаться.

Swap потом задашь в файле, нечего разделы плодить :).

Windows 10, внутренний диск — GPT, внешний — MBR.

Или конвертируешь MBR в GPT — предпочтительно (fdisk или Gparted в live-режиме минта), или установка и загрузка только в LegacyBIOS, а если Win10 в EFI — она не загрузится.

Лучше бы не конвертировать MBR в GPT, потому что я читал, что при таких операциях есть риск потери данных. Что касается BIOS, то я обычно делаю так — когда мне надо грузиться с флешки, я меняю там Boot Mode с UEFI на Legacy, а затем выбираю Legacy First, и при этом в приоритетах загрузки ставлю флешку на самый верх. Всё работает. Именно так я загрузился с флешки Linux Mint, созданную через Unetbootin. А потом, чтобы загрузить снова винду, не вынимая их компа флешки при этом, просто меняю обратно Boot Mode на UEFI. Так что я думаю, что вариант с Legacy мне подойдёт. Винда ведь будет грузится в таком режиме при выключенном внешнем? Повторю, что желательно при загрузке с внешнего выбор винды или линукс, а не так, что рулить ОСями каждый раз через BIOS.

Если Вы говорите, что лучше сделать swap в файле, то можете тогда сразу написать, как? Swap мне важен, потому что я планирую использовать гибернацию. У меня объём оперативки 8 Гб.

Винда ведь будет грузится в таком режиме при выключенном внешнем?
просто меняю обратно Boot Mode на UEFI.

Придется вот это делать, через GRUB винда не загрузится в Legacy First.

что при таких операциях есть риск потери данных.

Один раз только таблица слетела при конвертации из GPT в MBR, но это операция еще опаснее.

Далее я описываю варианты после конвертации, без конвертации я описал выше, но нужно постоянно переключать режим загрузки с Legacy First на UEFI и обратно.

Итак, таблица разделов на внешнем диске стала GPT.

Можно поставить GRUB в efi раздел жесткого на компе, а сам линукс на внешний. Для загрузки венды без внешнего диска выбирать её efi загрузочную запись, т.к. основные файлы конфигурации груба будут лежать на внешнем диске, а на внутреннем только сам загрузчик. В этом случае включать при загрузке Legacy не нужно, нужно просто выбрать флешку.

Или еще один вариант — вставить при установке маленькую флешку (1 гигабайта более чем достаточно) и выбрать её как ext4 и точку монтирования /boot. Её не вытаскивать, груб всегда будет загружаться даже без внешнего большого диска, а если всё же вытащить, то винда всё равно загрузиться через свою efi pfgbcm/

Читайте также:  Windows 10 увеличить шрифт меню

Писать флешку лучше методом dd через rufus или ROSA ImageWriter или еще какой аналог не распаковывающий ISO, а пишущий его напрямую.

Если Вы говорите, что лучше сделать swap в файле, то можете тогда сразу написать, как?

Один раз только таблица слетела при конвертации из GPT в MBR, но это операция еще опаснее.

Чего там опасного, «конвертировать» можно и руками, даже нужно.

Делаешь вывод таблицы разделов MBR по секторам:

Чего там опасного, «конвертировать» можно и руками, даже нужно.

Ну слетела же, 4 раздела было, вроде ни чего сложного. Восстановил ручками, было интересно как с этим fdisk (или gdisk, не помню) справится.

Просто очень важно иметь гарантию того, что не будут потеряны данные. Я так понял, что если внешний диск не GPT, то придётся постоянно в BIOS рулить, да?

Тогда, как я понимаю, последовательность моих действий будет такова: гружусь с флешки Линукс, на рабочем столе жму ярлык для установки, размечаю в том установщике диск — на свободном пространстве раздел под /, другой раздел под /home, под ними внизу останется почти 2 Тб с ntfs (кстати, разметить просто основные разделы, или два раздела в одном логическом разделе?). Внизу в том же окне вроде написано, куда ставить загрузчик системы, там выбираю sdb (или sdb1, sdb2?), потом просто жму «установить». Потом нужно выключить комп, и поменять приоритет в BIOS с флешки на внешний диск (чтобы комп не грузился опять с установочной флешки), и включить при этом Legacy First. После этого загрузится линукс, и я создам там swap-файл. Правильно я всё описал? И обратите пожалуйста внимание на вопрос, куда точнее установить загрузчик: просто sdb, или определённый раздел, например, sdb1, sdb2, и т.д. Как я понимаю, мне не нужен efi-раздел, если у меня внешний в mbr и я не буду менять на gpt? Ещё раз извиняюсь, что так досконально всё описываю вплоть до кнопок, просто раньше не имел дела с Линукс.

кстати, разметить просто основные разделы, или два раздела в одном логическом разделе?

Два основных. Расширенный придумали т.к. mbr поддерживает только четыре раздела (привет 80-е).

sdb без цифры, на цифру ставят для цепочки загрузчиков.

Как я понимаю, мне не нужен efi-раздел, если у меня внешний в mbr и я не буду менять на gpt?

Спасибо за информацию! Таким образом, видимо, самым лёгким методом загрузки Винды будет просто отключение внешнего диска из разъёма, чтобы не париться постоянно с BIOS. Да и другие у меня в семье тоже комп используют, скажу им, что для загрузки Винды надо просто убрать диск.

Попробую тогда уже поставить, завтра наверное только, потом отпишусь, как поставил. Сколько примерно по времени идёт установка?

Сколько примерно по времени идёт установка?

Рассчитывай на час, но обычно быстрее.

Понятно. А можете ещё посоветовать, как распределить /home и /, если я выделил 100 Гб? Сколько отдать под /home, и сколько отдать под /?

Забыл добавить — учитывая, что swap-файл сделаю наверно 16 Гб, чтоб точно хватило

А тут как ни дели. Можно 60 и 40, вполне должно хватить. В хомяке, в принципе, ни чего особо объемного не будет кроме чего-то что ты сам туда положишь. Но место под сборку чего нибудь нужно оставить. Файлопомойка у тебя, как я понимаю, на нтфс.

Да, на внешнем жёстком только один раздел на ntfs объёмом 1,7 Тб, где и хранятся все данные. Перед этим разделом, как я писал, неразмеченные 100 гб для Линукса.

Ну так да, под корень отдай 60 и 40 хомяку. Более чем достаточно (вспомнил ноутбуки с eMMC).

Понятно, сделаю тогда так.

Ещё возник вопрос — ext4 не слишком сильно нагрузит диск? Или это касается только флешек? Просто видел иногда, что советуют ext3. У меня диск Samsung (Seagate) D3 Station — http://club.dns-shop.ru/peripheral/Обзор-и-тестирование-внешнего-ж-сткого-дис. .

Хомяку меньше чем корню? У меня 20ГБ с трудом в корне занято. А в хомяке будут все файлы пользователя, включая загрузки. Понятно, что на внешнем винте вряд ли в хомяке и 40 накопится, но таки для корня, имхо, и 30 избыточно.

Там свап 16 гигов, не забывай.

Советовали ext3 пока ext4 была сырая. Сейчас в ядре нет ext3, её обрабатывает драйвер ext4 в «режиме совместимости». А на флешки ставить любую журналируемую ФС — глупость.

Читайте также:  System windows forms datavisualization charting assembly

Под систему выделил 56 Гб, под «хомяк» 51. Всё прошло успешно, полёт нормальный пока, данные все на месте. Свап поставил — работает. Спасибо большое за полезные советы!

Кстати, grub при запуске с винта видит винду, но выбор её бесполезен — там возникает ошибка загрузчика винды. Так что граб её действительно не видит. Винду гружу просто путём отключения винта.

Кстати, grub при запуске с винта видит винду, но выбор её бесполезен — там возникает ошибка загрузчика винды. Так что граб её действительно не видит. Винду гружу просто путём отключения винта.

Винда установлена в EFI режиме, а GRUB в LegacyBIOS режиме загружается, а эти режимы на уровне железа не совместимы — вот винда и сегфолтиться. Т.е. это по факту недоработка os-probe — при генерировании конфига она не проверяет в каком виде установлены найденные ОС.

Я вот ещё заметил некоторые странные изменения. Во-первых, в Винде сбросилось время, пришлось вернуть его снова, было 10 часов вместо 15. Это видимо от долгого бездействия внутреннего жёсткого диска. Также при запуске Винды был chkdsk тома D: (Lenovo, 25 гб). После него, в проводнике я вижу только «Локальный диск D:», информации и метки тома нет, что видимо, свидетельствует о том, что он был отмонтирован, но потом почему-то не примонтировался обратно. Думаю, что это решится перезагрузкой. Но вообще, я думаю, что Линукс тут не причём.

При загрузке компа без винта после экрана «Lenovo» сначала отображается чёрный экран с какими-то надписями короткое время, а потом уже загрузчик Винды. Это видимо сообщение о том, что внешний не найден.

Это видимо от долгого бездействия внутреннего жёсткого диска.

Не, это линукс перезаписал время — он хранит время по умолчанию в UTC, а винда в local time. Лучше хранить как линукс, а для винды поправить — гугли «windows хранить время в UTC».

Это видимо сообщение о том, что внешний не найден.

Видимо UEFI запоминает последний источник загрузки как дефолтный, посмотри что там можно настроить.

Попробовал таким методом настроить Винду на UTC — http://linux.2baranga.org/2016/05/ubrat-oshibku-vremeni-pri-ispolz/. Посмотрю, сохранится ли настройка.

Я посмотрел поподробней, что там отображается на чёрном экране — там какое-то сообщение про Realtek, какой-то тест по-моему ещё упоминается, и Intel Wireless. Странное сообщение. Ничего про диск и загрузчики там не написано. В BIOS среди приоритетов есть как раз что-то с такими названиями, но оно не выставлено наверх. Стоит там сначала внешний, потом внутренний, ниже уже вот это нечто про Realtek и Intel, а потом SATA ODD (это, я так понимаю, CD-дисковод).

Ну загрузчик (который в прошивке) не может найти внешний диск и начинает просматривать все источники, наверное так. Реализации уефи очень разные у всех, трудно вот так прям сказать, со старыми биосами было проще.

Если время не будет в винде сохраняться, но можешь настроить хранение в линуксе в localtime потом, это не критично. Но только я не знаю что там у тебя в минте в качестве инита — если не сустемд, то инструкция для убунты по твоей ссылке не сработает.

Я вот ещё заметил, что в Линуксе возникают некоторые артефакты при прокрутке в браузере, прокрутка выглядит не такой плавной, как в Винде. С чем это может быть связано? С тем, что работает с внешнего, а не с внутреннего? Я использую браузер Firefox.

О, это частая проблема, но она как-то меня обходит стороной. Создай отдельную тему, там кто лучше знает — подскажет.

Я поставил дополнение «Yet Another Smooth Scrolling» в Firefox, и уже не так заметно это.

Делал как здесь написано, но у меня выскакивает сообщение что:

раздел /dev/sdb5, монтируемый к /home, начинается со смещения 3584 байт от минимального выравнивания для этого диска, что может привести к очень плохой производительности.

Так как вы форматируете этот раздел, задайте другое выравнивание для решения данной проблемы. Лучше сделать это сейчас , так как позже это выполнить гораздо сложнее. Для этого вернитесь в главное меню разметки, удалите раздел, и пересоздайте его в том же месте и с теми же параметрами. При этом раздел теперь будет размещен в подходящем месте на диске.

Пробовал заново все делать, все повторяется. Подскажите где косяк! Спасибо!

Источник

Оцените статью