Внешний hdd для 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!
В случае, если потребуется добавить своп, то можно воспользоваться следующим рецептом:
Создаем своп файл (от имени суперпользователя):
И добавляем в конец /etc/fstab следующую строку:
На этом, пожалуй, все. Всем добра и пингвинов!
Ссылки
Все материалы сайта, если не указано иное, распространяется под лицензией Creative Commons Attribution-ShareAlike 4.0 International License (c) Алексей Дураченко.
Источник
Внешний hdd для linux
Многие уже привыкли использовать внешний жесткий диск (HDD) с разъемом USB чтобы хранить данные и переносить их с компьютера на компьютер (в случае, если нет возможности передать их по сети). После покупки фирменного внешнего жесткого диска в магазине (например, от Western Digital и др.) Вы, как правило, обнаружите, что он уже отформатирован в файловой системе FAT32.
В этом случае подключение и работа с ним как в GNU/Linux, так и в MS Windows не представляет никакой трудности и аналогична подключению внешней флешки. Как в MS Windows, так и в GNU/Linux с графической средой KDE такой жесткий диск даже будет автоматически подмонтирован и доступен для чтения и записи. В MS Windows появится новая буква устройства, в GNU/Linux в KDE диск будет подмонтирован в директорию media:/. Важно лишь при окончании работы (как и при работе с флешкой) не забывать отмонтировать внешний HDD, прежде, чем физически отсоединить его от компьютера.
Единственный, но существенный недостаток файловой системы FAT32 в том, что она не позволяет записывать на диск файлы размером более 4 Гб. А иногда имеется потребность в записи таких файлов — например, образов DVD-дисков (4.4 Гб).
Решение этой проблемы связано с использованием других файловых систем на внешнем HDD. Сложность заключается в том, что эти файловые системы «по умолчанию», без установки дополнительных драйверов, поддерживаются компьютерами или только с GNU/Linux, или только с MS Windows. Поэтому или на тех, или на других компьютерах придется устанавливать дополнительный драйвер для работы с «неродной» файловой системой.
2. Внешние HDD с файловой системой ext2
При работе в GNU/Linux эта проблема файлов размером более 4 Гб решается очень просто — жесткий диск форматируется в традиционной для этой ОС файловой системе ext2. (Форматирование в GNU/Linux можно осуществить с помощью программы gparted, имеющей графический интерфейс). При форматировании имеет смысл задать метку для раздела диска — например, external-hdd. После форматирования на диске будет присутствовать служебная директория lost+found, в которую помещаются данные в случае сбоя в работе с диском.
Отформатированный таким образом внешний HDD также будет автоматически подмонтироваться при работе в GNU/Linux в графической среде KDE.
Желательно сразу после форматирования диска сделать его корневую директорию доступной для чтения и записи не только суперпользователю, но вообще всем пользователям как этого, так и других компьютеров. В случае, если Вы работаете в графической среде KDE и у Вас функционирует автомонтирование внешних дисков, до достаточно лишь вынуть шнур USB и опять подключить его. Через пару секунд система покажет, что она автоматически подмонтировала внешний диск в директорию media:/label, где label — метка раздела, которая задана при форматировании. Диск из нашего примера будет виден как media:/external-hdd. В действительности это означает, что диск автоматически подмонтирован в директорию /media/label, в нашем случае — /media/external-hdd. Значит, надо изменить права доступа для этой директории. В режиме суперпользователя даем команду:
После этого как на данном компьютере, так и на других компьютерах диск будет доступен для чтения и записи для всех пользователей.
Чтобы работать с этим диском в режиме чтения и записи с компьютера, на котором установлена операционная система MS Windows, необходимо на нем установить специальный драйвер. С помощью драйвера MS Windows будет работать с внешним HDD в ext2 точно также, как с дисками, отформатированными в «родных» файловых системах — т.е. присвоит ему определенную букву и т.д.
3. Внешние жесткие диски, отформатированные в NTFS
В случае, если на внешнем жестком диске используется «родная» для MS Windows файловая система NTFS (например, когда диск подключается преимущественно к компьютерам с MS Windows), то дополнительный драйвер — ntfs-3g — нужно установить на компьютере с GNU/Linux. При работе с Debian Lenny преимуществом является то, что этот драйвер имеется в составе репозитория дистрибутива (список дистрибутивов, в которых идет этот драйвер, см. здесь). Для установки переходим в режим суперпользователя и даем команду: После чего инсталлируем его с сетевого репозитория или с диска дистирбутива.
Далее после подключения внешнего USB-диска к компьютеру с GNU/Linux можно убедиться, что ОС его видит, дав команду В выводе команды будет присутствовать устройство с названием производителя, например: Впрочем, это делать необязательно.
Должна быть заранее создана директория на файловой системе компьютера (т.е. на его внутреннем жестком диске), к которой будет подмонтирован внешний жесткий диск, например /mnt/hdd. Желательно открыть доступ к ней для простых пользователей режиме и чтения, и записи. Все это можно сделать командами в режиме суперпользователя: — создание директории, и — обеспечение доступа к ней в режиме чтения / записи всех пользователей.
Для подмонтирования внешнего жесткого диска переходим в режим суперпользователя и даем команду: В этом примере внешний диск представляет собой устройство /dev/sda1. Если внених USB-дисков подключено несколько, то это может быть /dev/sda2 и т.д.
Встает важный вопрос: как узнать буквенное обозначение внешнего USB-диска? Проще всего это сделать командой (из-под суперпользователя) В результате получим список всех разделов всех подключенных к компьютеру дисков. Например: Вначале идет внутренний жесткий диск помпьютера /dev/hda и его разделы — /dev/hda1, /dev/hda2 и т.д. На них на всех файловая система Linux, т.е. ext3. Диск, который нас интересует — внешний USB размером 120 Гб, обозначенный как /dev/sda. На нем только один раздел — /dev/sda1, который мы и монтируем в директорию /mnt/hdd. В том, что это нужный нам раздел, убеждает нас его идентификация системой как раздела типа «HPFS/NTFS».
Для корректного окончания работы с внешним диском его необходимо отмонтировать — также в режиме суперпользователя: После этого диск можно отключать от компьютера.
4. Универсальный вариант: ext2 + FAT32
Как видно из вышеизложенного, при использовании и ext2, и NTFS приходится доставлять дополнительные драйвера на альтернативную операционную систему. Возникают две основных вопроса:
- Какую файловую систему на жестком диске предпочесть (ext2 или NTFS)?
- Как добиться того, чтобы драйвер был доступен в момент подключения диска?
1. Ответ на первый вопрос зависит не только от того, в какой ОС Вы работаете больше: в GNU/Linux или MS Windows. Он зависит еще и от того, в какой системе у Вас будет возможность установить драйвер. GNU/Linux, как ориентированная на максимальную безопасность, не позволяет это сделать обычному пользователю, а только в режиме суперпользователя — но Вы не всегда можете знать пароль рута. В то же время, в MS Windows довольно часто бывает, что простой пользователь работает с правами администратора.
Поэтому в общем случае лучше исходить из того, что используется файловая система ext2, а драйвер будет установлен под MS Windows. Это обеспечит и большее удобство работы с диском в родной GNU/Linux.
2. Драйвер, конечно, можно носить с собой на дополнительной флешке, которая имеет FAT32 и корректно распознается в любой ОСи. Однако более правильной будет следующая схема: на внешнем жестком диске выделяется небольшой раздел (например, 512 Мб или 1 Гб), который форматируется в другой файловой системе — в FAT32. На него копируется нужный драйвер. Тогда в MS Windows драйвер будет всегда доступен с этого альтернативного раздела.
Пример. Пусть принято решение форматировать внешний HDD размером 120 Гб в файловой системе ext2. Создадим на нем раздел в этой файловой системе размером 119 Гб (при этом присвоим ему метку hdd-ext2, а затем сменим права, чтобы дать полный доступ для всех, т.е. на «777»). Оставшееся место (примерно 1 Гб) выделим под раздел с FAT32 (с меткой, например, hdd-fat). После форматирования войдем из-под GNU/Linux в раздел с FAT32 и скопируем туда скопируем драйвер, позволяющий из MS Windows работать с файловой системой ext2.
При кодключении такого диска к компьютеру с GNU/Linux в графической среде KDE автоматически будут подмонтированы оба раздела — соответственно, как media:/hdd-ext2 и media:/hdd-fat. Основным разделом для хранения данных будет первый раздел, составляющий 99% от емкости диска; второй же будет использоваться для постоянного хранения драйвера для альтернативной операционной системы, но потеря невелика — ведь там всего 1% от дискового пространства.
При первом подключении к компьютеру с MS Windows будет виден только маленький раздел в FAT32 — но он позволяет установить в системе драйвер для ext2, который находится на нем. После установки драйвера из MS Windows будет виден и второй — больший — раздел с ext2 на жестком диске, который и является основным для передачи данных между компьютерами с GNU/Linux и MS Windows.
Источник