Какую файловую систему выбрать для флешки для linux
Этичный хакинг и тестирование на проникновение, информационная безопасность
Оглавление
Linux на USB
Linux прекрасно себя чувствует на флешках и внешних дисках. Поэтому если вы хотите попробовать новый дистрибутив или просто начать своё знакомство с Linux, то установка на внешний диск это хороший вариант (ещё проще работать с виртуальной машиной).
Установив Linux на USB вы получите портативную систему, которую можно загрузить на другом компьютере.
В отличие от виртуальных компьютеров, система на флешке имеет полный доступ к железу (встроенный Wi-Fi адаптер, видеокарта и прочее) — благодаря этому вы сможете использовать ресурсы компьютера в полную силу.
Кстати, если вас интересует работа с Windows на USB, то смотрите статью «Как установить Windows на USB диск».
При установке и использовании Linux на внешний диск могут возникнуть не совсем очевидные проблемы — в этой инструкции я покажу как их решить.
Кстати, именно с возможных проблем давайте и начнём.
БИОС и EFI
БИОС и EFI — это разные варианты загрузчиков. EFI предназначен для замены BIOS — интерфейса, который традиционно используется всеми IBM PC-совместимыми персональными компьютерами. Некоторые компьютеры поддерживают только БИОС, некоторые поддерживают только EFI, некоторые работают с обоими вариантами.
Live образы почти всех современных дистрибутивов Linux — это гибридные диски. Они имеют раздел и для работы с БИОСом, и для работы с EFI. В зависимости от того, что именно обнаружено на вашем компьютере запускается тот или иной вариант.
Причём установщики для БИОС и EFI могут различаться даже визуально. Один и тот же диск, запущенный на компьютере с БИОС:
И этот же диск запущенный на компьютере с EFI:
Имеются отличия в пунктах меню. Но главное отличие — если была запущена версия для БИОСа, то она устанавливает загрузчик GRUB, предназначенный для работы (как можно догадаться) именно с БИОСом. Если же была запущена версия для EFI, то в качестве загрузчика будет выбран GRUB с поддержкой EFI.
Следовательно, при переносе USB флешки/диска с одного компьютера на другой, она может не загрузиться по причине того, что предназначена для работы с EFI, а другая машина не поддерживает это. Или наоборот.
Это первый подводный камень, который у меня занял время пока я разобрался — помните о БИОС и EFI, если также столкнётесь с проблемой, что система не загружается на другом компьютере.
Имя диска Linux зависит от количества дисков на компьютере
Первый диск в Linux обычно называется /dev/sda, второй диск /dev/sdb, третий диск /dev/sdc и так далее. То есть обычно название имеет вид /dev/sdX, где вместо X идёт латинская буква. Названия могут быть другими — зависит от типа подключения, но обычно всё-таки это /dev/sdX. Кстати, разделы диска называются также как и сам диск, но ещё добавляется цифра. Например, первый раздел первого диска имеет имя /dev/sda1.
Поскольку буква зависит только от порядкового номера диска, то при переносе на другой компьютер, имя диска может поменяться. Например, у вас диск с Линукс был вторым и назывался /dev/sdb, а на другом компьютере это третий диск и он называется /dev/sdc.
Проблема здесь в том, что в загрузчике прописано имя диска и если имя поменялось, то он не может загрузить ядро Linux и, следовательно, всю систему.
Явным признаком неправильного имени диска в настройках загрузчика является сопутствующая ошибка:
Причина её в том, что настройки GRUB указывают на неверный диск, например, на диск Windows. Система не понимает файловую систему диска и не может продолжить загрузку. Эта проблема решается достаточно просто.
Перезагрузите компьютер, и когда появится меню загрузчика GRUB нажмите клавишу e. Вы увидите примерно следующее:
Обратите внимание на строку, начинающуюся с linux. В моём случае там присутствует запись
Поскольку при установке в виртуальном компьютере кроме флэшки не было других медиа, то ей было присвоено имя /dev/sda1. В реальном компьютере имеется ещё минимум один жёсткий диск, и имя /dev/sda1 могло быть присвоено ему. А флэшка, с которой я пытаюсь загрузиться, теперь имеет другое имя. Этим именем может быть /dev/sdb1, или, /dev/sdc1 или другое (в зависимости от количества дисков в системе).
Если вы не знаете новое имя, то просто перебирайте разные варианты. Переместите курсор на имя диска и поменяйте его на /dev/sdb1. После этого нажмите клавишу F10 и дождитесь загрузки. Если загрузка неудачная, то перезапустите компьютер и поменяйте запись на /dev/sdс1 (и так далее по алфавиту), нажмите F10 и проверьте успешность загрузки.
После успешной загрузки в систему, поменяйте имя загружаемого диска. Например, в моём случае имя диска оказалось /dev/sdс1 (с буквой c). Тогда команда для изменения загрузочного диска будет выглядеть так:
Вместо /dev/sdc подставьте имя вашего диска или флэшки.
Теперь при перезагрузке не будет возникать ошибка.
Как установить Linux на флешку или USB диск из VirtualBox
Установить Linux на внешний диск можно на любом компьютере, подключив этот диск по USB, а затем выбрав его в качестве диска для размещения системы. Но это не самый безопасный способ, особенно для новичков, поскольку случайно вы можете выбрать неверный диск и удалить нужные файлы.
Установка через VirtualBox чуть сложнее, но зато происходит в полностью изолированном окружении. Благодаря этому шансов что-то повредить просто нет.
Первая проблема, с которой вы можете столкнуться: при установке в VirtualBox в качестве загрузчика был выбран обычный БИОС, но новые компьютеры не всегда его поддерживают. То есть это та самая дилемма о которой я говорил чуть выше.
Если у вас современный компьютер, то после создания виртуальной машины, поставьте галочку «Включить EFI (только специальные ОС)»:
Будет выполнена установка с поддержкой EFI. На моём ноуте нет поддержки БИОСа и поэтому система, установленная без этой галочки, просто не запускается — у вас может быть также.
Но вернёмся к самому началу — созданию виртуальной машины. При её создании выберите «Не подключать виртуальный жёсткий диск»:
Остальные настройки на ваше усмотрение. Если вы совсем новичок по работе с виртуальными машинами, то смотрите пример создания в статье «Установка Kali Linux на флэшку или на внешний диск как полноценную ОС».
Затем при запуске виртуальной машины подключите вашу флэшку или ваш USB диск к реальному компьютеру, и затем подключите его к виртуальной машине:
Теперь имеется два варианта. Первый я рекомендую только для чистых флэшек и дисков. Иначе есть очень большая вероятность, что процесс разметки диска в установщике завершиться неудачей.
Итак, первый вариант
выбираем Ручную разметку диска:
Там могут быть какие-то разделы:
Если они вам не нужны, удалите их все, получится:
Теперь выберите Автоматическую разметку:
Авто — использовать весь диск:
Оставьте как есть, если не знаете как это использовать:
Если ставите с EFI, то будет создана похожая разметка:
Обратите внимание, что раздел ESP должен быть обязательно — без него EFI просто не увидит ваш диск. Это небольшой раздел в FAT32, где размещается загрузчик. По своему усмотрению, можно подредактировать другие разделы, например, я убрал файл подкачки и уменьшил размер диска:
Соглашаемся с запросами установщика, который может предупредить об отсутствии файла подкачки. Утверждаем выбранную разметку дисков:
Поэтому есть второй вариант.
В самом начале, когда доходим до загрузки, вместо установщика выберите Live Mode. Когда система загрузится в Live режиме, подключите вашу флешку/диск к реальному компьютеру, а затем подключите её к виртуальному, если вы этого не сделали ранее.
Следующей командой проверим имя диска:
Оно должно быть /dev/sda
Сделаем полную очистку флешки /dev/sda. На всякий случай: полная очистка означает, что ВСЕ ДАННЫЕ с флешки будут УДАЛЕНЫ! Обращаю внимание, это мы делаем В ВИРТУАЛЬНОЙ МАШИНЕ. Не делайте так на реальном компьютере, если вы не понимаете, какое имя у вашей флешки — сотрёте первый (скорее всего системный) диск.
Открываем его программой gdisk:
Для перехода в экспертный режим там введите
Затем для удаления GPT введите
Дважды согласитесь, чтобы полностью очистить диск.
Перезагружаем виртуальный компьютер:
При последующей загрузке выберите пункт для установки системы — далее как обычно.
Как установить Linux на флешку или USB диск
Описанным выше способом можно также установить Linux на USB прямо в физическом компьютере, без использования VirtualBox. При этом будьте внимательны, чтобы случайно не перепутать флешку с каким-то внутренним диском и не стереть на нём информацию.
Также помните про название дисков после того, как отключите установочную флешку. Например, на этой фотографии первой идёт установочная флешка (sdb), а за ней внешний USB диск, на который я хочу выполнить установку (sdc):
Если продолжить установку, то затем придётся переименовывать диск в загрузчике. Я поступил проще, отключил компьютер и поменял флешку и диск местами в USB гнёздах, получилось так:
Теперь даже после отключения установочной флешки, USB диск с системой всё равно будет иметь имя sdb и не придётся ничего дополнительно настраивать.
Загрузка Linux с USB из VirtualBox (БИОС)
Кстати, для меня этот метод оказался очень полезным: некоторые системы, например Parrot, после установки не загружаются на физическом компьютере. Проблема решается тем, что я загружаюсь с этого диска через VirtualBox и обновляю систему. После этого система способна загрузиться уже и на физическом компьютере. На аналогичные проблемы (Live система прекрасно работает, а после установки система не загружается) жалуются также некоторые пользователи Kali Linux. Видимо, дело в какой-то несовместимости с железом, которая исправлена в новых версиях ядра.
Загрузка Linux с USB из VirtualBox (EFI)
С EFI в VirtualBox есть свои особенности. Во-первых, нужно начать загрузку с внешнего диска, как это описано в этой статье.
Но загрузка завершиться неудачей:
Причина ошибки в том, что загрузчик VirtualBox EFI не видит файлы .efi для продолжения загрузки ОС.
Вариантов решить эту проблему два:
1) явно указать загрузчику нужные файлы
2) поменять название требуемых файлов на дефолтные — которые загрузчик точно найдёт.
1. Указываем загрузчику файл .efi:
Теперь выполните команду
чтобы увидеть содержимое папки EFI:
Видим там папку parrot, теперь посмотрим, то внутри этой папки:
Итак, видим там файл grubx64.efi. Получается, что файл, который не может найти система, находится по пути \EFI\parrot\grubx64.efi
Открываем файл для редактирования:
И вписываем туда строку (у вас может быть другая, например, \EFI\Manjaro\grubx64.efi или ещё какие-то варианты):
Для выхода из редактора:
После этого система нормально загрузится:
2. Изменяем имена файлов на отказоустойчивые
Как мы только что увидели, файл для загрузки находится по пути /EFI/parrot/grubx64.efi, отказоустойчивым именем, которое система ищет по умолчанию, является /EFI/BOOT/BOOTX64.EFI
Можно открыть этот диск и просто переименовать папку и файл в /EFI/BOOT/BOOTX64.EFI — система загрузится и ни на что другое это не повлияет.
Установка нескольких дистрибутивов Linux на одном USB
Ничего не мешает установить на USB диск второй дистрибутив Linux, а также третий, четвёртый, пятый и так далее.
Процесс всегда примерно одинаковый — из (части) свободного места создаётся новый раздел и на него устанавливается новый дистрибутив.
Загрузчик Linux хорошо определяет соседние системы
и при запуске компьютера предлагает на выбор загрузиться с одной из них.
Могут быть разные нюансы с «дружественными» дистрибутивами. Например, Ubuntu изображает из себя Windows и не хочет устанавливаться на USB. Всё решается подключением диска особым способом как описано в этой статье.
Эта же самая Ubuntu не даёт вручную задать размер диска и занимает всё свободное пространство…
С помощью GParted Ubuntu вылечена от жадности:
В общем если вы хотите сделать «шаг влево шаг вправо», то «дружелюбность» сразу превращается в головную боль.
Почему Linux не загружается с USB
Кроме уже перечисленных вариантов, когда могут возникнуть проблемы, также проверьте, отключены ли у вас в настройках EFI опции Security Boot и Fast Boot.
Железо
- старайтесь не использовать USB хабы — от них очень много проблем
- во время установки не шевелите флешки и провода дисков
- флешки могут отключаться от перегрева — помните об этом
Вам может это пригодиться:
- внешний USB диск
- внешний USB SSD диск
- SATA-USB чехол-переходник
- карта памяти USB на 64 Гб
- карта памяти USB на 128 Гб
- карта памяти USB на 256 Гб
Я себе купил два вот таких SATA-USB переходника. Первый:
А этот я купил в местном магазине (600 рублей), поддерживает только USB 2, заметно медленнее предыдущего, в комплекте приятный чехол. В него я вставил HDD диск (тоже со старого ноутбука):
Миниатюрные флеш- и SD-карты ( MMS и SD ) встречаются на каждом шагу и содержат гигабайты дешевой памяти в маленьком объеме. Большая их часть отформатирована в VFAT. А какая Линуксовая файловая система будет быстрее всех работать с этими носителями?
Флешки становятся все вместительнее, быстрее и дешевле. Теперь они уже не только сохраняют ваши фотки в карманной камере ≈ они служат для резервного копирования, переносными домашними директориями, дополнительными дисками в нетбуках . продолжите список сами.
Большая их часть продается с файловой системой VFAT и обычно такой и остается. Но для многих задач эта ФС не оптимальна. Нам стало любопытно, влияет ли тип файловой системы на работу флешки, и мы проверили.
Результаты проверки дали однозначные результаты. Итак, в какую файловую систему линуксоид отформатирует свои флешки для достижения максимальной скорости ?
В некоторых случаях ext4 вчетверо быстрее ext3. Удивлены? Так же был удивлен Ted Ts'o, ведущий дизайнер и мантейнер файловой системы ext4. "Вы наблюдаете четырехкратное увеличение скорости при переходе с ext3 к ext4?" ≈ спросил Тед, и добавил ≈ "Это впечатляет, хотя является для меня полной неожиданностью. В своей работе я делаю упор на повышение скорости ext4 на жестких дисках HDD и на твердотельных дисках SSD, а не на этих маленьких устройствах".
Давайте посмотрим на цифры, вызвавшие удивление Теда. Числа означают время в секундах, потребное чтобы записать несжатую директорию ядра linux 2.6.34 на новейшую Class 10 SD флеш карту, а затем считать ее обратно (после удаления кэшей). Чем число меньше, тем работа быстрее.
Почти в четыре раза быстрее чем ext3, почти втрое быстрее ext2, и заметно лучше всех остальных. Неплохие показатели при записи у NTFS, зато при чтении она хуже всех. Что касается Reiser, то она всегда медленно работает на флешках.
Для всех ли флешек это так? Нет. Испытывая флеш карты быстро начинаешь понимать ≈ для них закон не писан. Результаты зачастую парадоксальны. Вот пример ≈ абсолютно тот же тест для сверх-дешевой флешки неизвестного производителя объемом в 2 Гб:
Что здесь бросается в глаза? Ext2 и Ext3 поменялись местами по скоростям записи. А скорости считывания вцелом возросли. Но Ext4 уверенно сохраняет лидерство.
По правде говоря, тест не совсем корректен. Он проведен с большим количеством маленьких файлов. Что будет при копировании одного большого файла? Вот результаты теста SD карты со сжатым bzip ядром linux 2.6.34 (один большой файл). Показаны секунды с сотыми долями.
Еще один крайний случай: старые системы с USB 1.1. Сравнение файловых систем некорректно, так как лимитирующим фактором будет скорость передачи данных USB портом.
Интероперабельность
Если вы используете флешку только для работы с компьютерами под Linux, то у вас не возникнет никаких проблем с использованием Ext4.Что касается Apple, то Linux читает и записывает файловую систему HFS+ очень хорошо, но на двух машинах с операционной системой Snow Leopard наш тест на запись проходил чрезвыйно медленно (один занял более двух часов). Тот же тест с флешкой под VFAT занял чуть более 7 минут. Пользуйтесь VFAT.
Windows? Стоит поэкспериментировать с NTFS, но и VFAT работает вполне удовлетворительно.
Почему выбраны именно эти файловые системы?
Очень просто ≈ они все есть в программе Disk Utility для Gnome. Мы хотели протестировать файловые системы, которые обычный пользователь может установить на свою флешку. Но нельзя не попробовать хотя бы еще XFS и Btrfs, хотя они и маловероятные кандидаты.XFS было легко испытывать, так как первый же тест она выполняла так медленно (19 минут вместо 7 на других системах), что мы прекратили дальнейшие опыты.
Btrfs, наоборот, успешно соперничала с Ext4. Она не победила, но шла рядом. Учитывая ее молодость и сыроватость, мы вправе возлагать на нее надежды в будущем.
Тед просил подчеркнуть, что результаты, о которых мы рассказали, не имеют никакого отношения к работе этих файловых систем на больших дисках ≈ HDD или SSD. Они и не имеют. Помните: флешки непредсказуемы!
Описание тестов
Мы провели более 200 тестов, в которых участвовало восемь компьютеров с двенадцатью операционными системами. Проверялось десять флеш носителей, некоторые с собственным USB портом, другие в одном из пяти картридеров. Применялись различные степени нагрузки (объемы работы). Результаты абсолютно непредсказуемы, но почти всегда побеждала Ext4.Испытания проводились с жеского диска на флешку, с флешки на флешку, с виртуального диска на флеш и обратно. Вариации были интересны, но весьма сходны с теми, что вы видели. Ваши результаты обязательно будут варьировать, так что советуем самим протестировать свои носители.
Чтобы повторить наши опыты, скачайте linux 2.6.34 в виде bzip архива и запустите команду
В большинстве случаев нам подойдёт файловая система для флешки Linux VFAT расширенный (видит более 2 Гб) вариант разметки FAT32.
Она часто может требоваться для разных других устройств, в том числе для перепрошивки БИОС-а..
Если не планируется использование в Windows, то можно в ext4 создавать, я бы ещё рекомендовал выставить права на флешку в этом случае 777, под разными пользователями может конфликтовать из-за прав на запись..
В меню есть инструмент для форматирования флешек
- KDE: Система → Форматировать USB-накопитель
- Cinnamon: Стандартные → Форматирование USB-флеш-накопителя
В разных сборках может не быть, в Linux Mint есть. Тоже можно сделать при помощи: Редактора разделов, Gparted итп..
Узнаём всё про флешку из консоли
Под рукой всегда есть консоль (терминал), с её помощью можно сделать всё то же.
Втыкаем флешку, вводим команду для вывода списка подключаемых устройств:
Там увидим название, ещё ниже размер и дальше будут куча надписей назначенного флешке имени, например, sdc в последней строчке:
Если подобного нет, попробуйте открыть диск в менеджере файлов, он подцепится.. Предложение открыть всплывает справа при вставке накопителя..
Ещё можно найти диски командой:
Последний скорее всего наша флешка.
Будьте внимательны, не отформатируйте жёсткий диск : ) Введём чтоб убедиться, что это флешка по размеру..
Сами понимаете dmesg | tail удобнее - сразу показывает подключённые носители и показывает название размер итд, точно не ошибёшься..
Форматируем flash накопитель в консоли Линукс
Если выбрали ext4, то разрешим читать и записывать всем подряд, чтоб не было проблем из-за прав на других компьютерах.. Перевоткните флешку, чтоб система её перечитала:
-R - рекурсивно, т.е. пройти все файлы и папки..
$USER - подставит текущего пользователя чтоб не вводить руками..
Изменить метку можно так
Следом перевоткните флешку.
Разъяснения:
mkfs - комада для форматирования.
vfat, fat, ext4, ntfs - файловая система (их больше).
vfat -I - разрешает создавать файловую систему на всем устройстве (связано с настройками по умолчанию).
-F - (force - принудительно) можно не отмонтировать устройство, но сама операция может растянутся надолго..
-n, -L - volume-name - имя (метка) для файловой системы. По умолчанию не создается и устройство может отображаться в виде длинного хеша. При наличии метки в качестве имени будет использоваться не хеш, а заданное название..
'myflashname' - имя (метка) нашей флешки.
/dev/sdc1 - путь к флешке (тому устройства).
Подробно можно почитать введя команду man mkfs.vfat (выход q)
Как записать образ на флешку Linux
В большинстве случаев, записать образ на флешку Linux можно при помощи графических утилит присутствующих по умолчанию:
- KDE: Система → Запись образа на USB-накопитель
- Cinnamon: Стандартные → Запись образа на USB-накопитель
В некоторых случаях (было такое - бился образ Виндовса при записи) могут помочь: UNetbootin, Etcher (balenaEtcher, ранее etcher-electron. Он так же справляется с проблемными образами Windows10) их может не быть в репозитории, поэтому скачиваем через браузер, распаковываем (не забудьте выставить в свойствах галочку в правах - является исполняемым) или устанавливаем, дальше остаётся просто указать iso образ и загрузочная флешка готова. (Понадобится, например, если необходимо установить новый Linux итп.)
По-умолчанию ядро не умеет работать с нтфс, для этого необходимы драйвера. Чтобы сделать liveusb используй фат либо ext3/4
Я пробовал сделать давеча загрузочную флешку Дебиана,
А рецептом поделитесь ?
В общем случае, разумеется, тип файловой системы имеет некоторую роль, но, думаю не вашем случае ))
Ну а как ещё. UNetbootin'ом, конечно же!
у деба давно все исошики гибридные и могут спокойно быть записаны
утилиткой dd с любого livcd на флешку.
Я тупо копирую iso на флеху с помощью dd.
ТС, вроде, желает поставить систему на флешку, а не livecd записать.
читать когда научимся?
4.5.2 Copying an ISO hybrid image to a USB stick 187
ISO images prepared with xorriso, can be simply copied to a USB stick with the dd program or an equivalent. Plug in a USB stick with a size large enough for your image file and determine which device it is, which we hereafter refer to as $. This is the device file of your key, such as /dev/sdb, not a partition, such as /dev/sdb1! You can find the right device name by looking in dmesg's output after plugging in the stick, or better yet, ls -l /dev/disk/by-id. 188
Once you are certain you have the correct device name, use the dd command to copy the image to the stick. This will definitely overwrite any previous contents on your stick! 189
$ dd if=binary.hybrid.iso of=$
пофиг. Всё равно затрётся.
ТС, вроде, желает поставить систему на флешку, а не livecd записать.
А. ну да, меня запутало то, что он там фс создавал. Я думал, он хочет развернуть систему на флешке.
Я думал, он хочет развернуть систему на флешке.
Читайте также: