Linux как работать с флешкой

Обновлено: 03.07.2024

Статья о некоторых особенностях использования флешек в linux.

Выбор файловой системы для флешки

При выборе файловой системы для флешки следует учитывать её последующее предназначение.

  • флешка как "переносной портфель"
  • флешка как "защищённый сейф"
  • флешка как "средство восстановления"

флешка как переносной портфель

Использование флешки в качестве переносного портфеля предполагает регулярную запись файлов на неё для переноса на другой компьютер. При выборе файловой системы в этом случае следует учитывать предполагаемый максимальный размер размещаемого файла, необходимость использования флешки в разных операционных средах, а также требование увеличения её срока службы.
Для повышения ресурса использования флешки оправданным выглядит установка на неё НЕжурналируемой файловой системы, например FAT32 или EXT2.

Достоинства и недоставки использования файловой системы FAT32 на флешке

  • достоинства FAT32 для флешки
    • отсутствие журнала файловой системы, что продлевает срок службы флешки
    • высокая скорость записи/чтения
    • кросплатформенность, что даёт возможность использования флешки как в Windows, так и в Linux
    • возможность записи большого файла одним фрагментом, что например важно при подключении iso-образа в загрузчике Grub4dos
    • разгрузка параметров монтирования флешки от настройки групп безопасности для одновременного доступа к ней разных пользователей
    • ограничение файловой системы FAT32 для максимального размера размещаемого на флешке файла составляет 4Гб
    • ограничение логического размера самой флешки (например 129 Гб), но на текущий момент для флешек такие размеры пока недостижимы

    Достоинства и недоставки использования файловой системы EXT2 на флешке

    • достоинства EXT2 для флешки
      • отсутствие журнала файловой системы, что продлевает срок службы флешки
      • высокая скорость записи/чтения
      • возможность записи файла неограниченного (2 TB) размера
      • невозможность записи большого файла одним фрагментом
      • отсутствие (штатной) поддержки файловой системы в windows

      флешка как защищённый сейф

      флешка как средство восстановления

      Монтирование флешки в linux

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

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

      Для автоматического монтирования флешки могут быть использованы пакеты usbmount и autofs.

      При установке утилиты usbmount, флешка монтируется автоматически в точку установленную файлом конфигурации после установки её в USB-порт.

      Подключение флешек с помощью программы autofs идентично подключению жёстких дисков.
      Например для автоматического подключения только "правильных" флешек с помощью autofs

      • в файл /etc/auto.misc добавляется строка
      • в файл /etc/auto.master добавляется строка
      • и осуществляется перезапуск autofs
      • для получения доступа к флешке может быть использована команда

      Монтирование удалённой флешки

      Удалённой флешкой в настоящей статье называется флешка, подключённая к удалённой рабочей станции локальной сети. Монтирование такой флешки для использования будет интересно например для пользователей сервера терминалов Linux.
      Для получения доступа к удалённой флешке могут быть использована возможность "переноса" её из сети на локальную станцию с помощью пакета Usbip, а также механизмы управления удалённой рабочей станцией заложенные в протоколах samba и ssh.

      Для подключения удалённой флешки в Linux с помощью протокола samba

      Приветствую, мой дорогой читатель! Думаю, многие слышали о системе Linux, но всё никак его не попробуют.. В этой статье я покажу, как мы можем попробовать в работе систему Linux без установки на ПК, мы просто загрузим систему с флешки.

      У меня, конечно, назревала мысль о том, что статья, по сути, бесполезна.. Потому что на данный момент все дистрибутивы Linux по умолчанию имеют функцию запуска с загрузочной флешки (или с диска), т.е. прежде чем решить, по нраву Вам операционная система или нет, Вы можете опробовать её. Короче, статью я всё таки написал, т.к. нередко встречаюсь с такими моментами, что человеку интересно.. но он не готов взять и отказаться от того, что у него сейчас в пользу Linux, т.е. он и не знает о том, что он необязателен для установки на HDD (SSD), что его можно попробовать и с флешки.

      Итак, дистрибутивов Linux множество.. Кому то нравится "Mint", кто- то юзает "Fedora", но на вкус и цвет, как говорится.. В этой статье я покажу пример на дистрибутиве Ubuntu . (как правило, для новичков самое то).

      Кстати, лицензию (в отличии от Windows) покупать здесь не нужно. Она распространяется свободно. Когда перешли на сайт по ссылке выше и клацнули на " Download " может появиться вот такая картинка:

      Естественно, если мы не желаем жертвовать разработчикам со своего кармана, просто выставляем ползунки на "0" и качаем дистрибутив.

      После того, как дистрибутив скачался, нам необходимо его записать на флешку. Делать мы это будем с помощью программы " Rufus ". Ранее я публиковал статью, как записать на флешку образ Windows с помощью этой программы. Делаем загрузочную флешку с Windows 10 в два счёта! ..так вот.. В принципе процесс аналогичный, только на этот раз мы выбираем образ Ubuntu вместо Windows. Ниже на скрине я указал программе скачанный образ и оставил всё по умолчанию. После чего нажал " Старт " и дождался завершения записи:

      Ну а теперь нам нужно загрузиться с флешки. Для этого нужно вызвать Boot Menu (меню загрузки) при включении компьютера и выбрать нашу флешку. Boot Menu обычно вызывается клавишами F12, F11, Esc. На материнских платах Asus для настольного ПК, на сколько я знаю, используется клавиша F8. Иногда информация о том, что нужно нажать для вызова Boot Menu появляется сразу на экране при включении ПК. Если не выходит, просто выставляем в Bios или Uefi приоритет загрузки с нашей флешки и перезагружаемся.

      У меня материнская плата Gigabyte (UEFI) и я открываю Boot Menu многократным нажатием на клавишу F12 . После чего в списке выбираю флешку и наблюдаю вот такую картинку:

      Этичный хакинг и тестирование на проникновение, информационная безопасность

      Оглавление

      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 диск (тоже со старого ноутбука):

      В наши дни очень большую популярность у пользователей набрали USB флешки. Они используются для обмена файлами, различными фильмами и документами, установки операционных систем, а также восстановления системы после сбоя. Чтобы работать с флешкой в Linux ее нужно примонтировать в корневую файловую систему.

      Дело в том, что организация файловой системы Linux немного отличается от того, что мы привыкли видеть в Winodws. Здесь нет никаких дисков C,D,E и так далее, есть только корень, самая верхняя точка файловой системы, в подкаталоги которой подключаются все жесткие диски и внешние носители.

      Если в системе используется окружение рабочего стола, то оно, как правило, берет на себя всю низкоуровневую работу чтобы выполнить монтирование флешки в linux. Система обнаруживает подключенную флешку и в системном лотке всплывает уведомление о подключенном устройстве. Дальше остается кликнуть по значку флешки, чтобы система выполнила все нужные для ее монитрования действия. Но если окружение рабочего стола не запущенно или вам нужно работать в консоли можно выполнить все действия по монтированию флешки вручную.

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

      Монтирование флешки в Linux

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

      Файлы флешек и других устройств хранения данных находятся в каталоге /dev. Устройства нумеруются по алфавиту sda, sdb, sdc, sdd и т д. Так как флешка подключается последней у нее будет старшая буква. Например, sdb или sdc. Имя sda принадлежит жесткому диску. Можно, конечно, просто посмотреть содержимое каталога /dev/, но такой способ ненадежный. Мы воспользуемся утилитой fdisk.

      Подключите флешку и выполните:


      Как видите, здесь мы можем посмотреть детальную информацию об устройстве. Имя файла, список разделов, формат таблицы разделов, список разделов. А главное для нас, размер раздела и его файловую систему. Теперь не сложно понять какая из них флешка. В этом примере это /dev/sdc1

      Создаем папку для монтирования:

      Теперь монтируем флешку с помощью команды mount:


      Если знаете файловую систему флешки, то лучше ее указать с помощью опции -t. Чаще всего используется FAT, так как ее легко открывают как Windows так и Linux системы:

      Монтирование осуществляется от суперпользователя, но если нужно чтобы отмонитровать флешку мог любой нужно указать опцию users:

      По умолчанию владельцем файлов на флешке при монтировании устанавливается root, поэтому если вы захотите работать с флешкой через файловый менеджер, то нужно будет его запускать с правами суперпользователя или же сразу примонтировать флешку в linux таким образом, чтобы владельцем был ваш пользователь. Для этого укажите группу и id своего пользователя в опциях uid и gid:

      Удостовериться что флешка подключена можно посмотрев содержимое каталога, в который мы ее монтировали:

      Или выполнив команду mount:


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

      Автоматическое монтирование флешки в Linux

      Популярные окружения рабочего стола выполняют монтирование флешки linux автоматически, как только она подключена к системе или по клику на ярлыке. Мы можем это реализовать с помощью службы udisks2.

      Мы тоже можем использовать его для ручного монтирования. Здесь даже есть несколько плюсов. Во-первых, мы можем монтировать без прав суперпользователя, во-вторых, не нужно создавать папку.

      Для монтирования используется такая команда:


      Здесь /dev/sdc1 - файл нашей флешки, а опция -b указывает, что нужно монтировать блочное устройство. Так же как и в mount здесь можно задать опции монтирования -o и файловую систему -t. Флешка будет примонтирована в папку /run/имя_пользователя/uuid-флешки/

      Для размонтирования используется аналогичная команда:


      Автоматическое монтирование usb флешки в linux можно настроить с помощью утилиты udiskie. Все новые подключенные флешки будут автоматически подключаться, после подключения устройства будет всплывать окно с предложением открыть файловый менеджер, а также значок, с помощью которого можно получить доступ к каждому из устройств.

      Устанавливается утилита в Ubuntu командой:

      Дальше остается запустить программу:

      Теперь все подключаемые устройства будут автоматически монтироваться с помощью udisks. Рассмотрим что значат опции:

      • -a - выполнять автоматическое монтирование
      • -n - показывать всплывающее уведомление
      • -t - показывать значок в трее.

      Выводы

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

      Читайте также: