Дистро в твёрдом теле. Запись образов на USB-флешки и SD-карты

Алексей Федорчук
Fedoriada, SUSEana, март 2011 — ноябрь 2012, с добавлениями от ноября 2014

Не так давно умер у меня внутренний CD/DVD привод, и желания обзаводиться новым нет. А внешний — хранится в шкафу на всякий случай, и беспокоить его там ради пустяков не гоже (если честно — просто лень). Так что для установки всего и вся окончательно перешёл на «твёрдое тело» — флешки и SD-карты, хотя и раньше не брезговал ни теми, ни другими. И даже немало понаписал об утилитах записи ISO- и IMG-образов на оба типа «твёрдых носителей». В том числе и обзор оных на Fedoriada. А поскольку последняя и дни доживает последние — самое время на базе всего ранее написанного собрать общий «сравниватель» всех утилит данного назначения. Каковой и предлагается вниманию читателей.

Карточки vs флешки

Но сначала несколько слов о самих «телах» — USB Flash и SD Card (в дальнейшем — просто флешки и карточки). Для наших, дистроустановочных, целей они почти эквивалентны: любой системой они воспринимаются одинаково, как устройство типа /dev/sd?#, и утилиты для записи на них установочных образов одни и те же. Различия между ними чисто, так сказать, организационно-технические.

В чём преимущество картридеров по сравнению с флешками?

Во-первых, большая компактность, особенно при использовании встроенного устройства.

Во-вторых, SD-карты, начиная с 4-го класса, быстрее флешек с интерфейсом USB2 как на запись, так и на чтение (начиная с 6-го класса — весьма существенно). Правда, надо сказать, что с флешками USB 3 сравнения не проводил.

В-третьих — чисто субъективный фактор: флешки, особенно маленькие (1-2 Гбайт) у меня имеют обыкновение расползаться как тараканы, на SD-карты же пока ещё никто не зарился.

Цена на SD-карты и флешки актуальных для установочных целей объёмов (1-4 Гбайт) ныне практически одинакова. Первые даже несколько дешевле, если не гнаться за высокой (10-й) “классностью”. И к тому же они доступней — флешек в диапазоне 1-2 Гбайт найти нынче сложно, а большие их объёмы обычно избыточны для данной цели.

Преимущество флешек — универсальность: подходящий USB-разъём есть в каждом компьютере, а для использования SD-карт требуется соответствующий привод. Он может быть внешним или внутренним.

Внешние картридеры представляют собой штуковины навроде вот этой:

sdcard01

Они подключаются к любому наружному USB-разъёму, как обычные флэшки:

sdcard02

Это удобно с точки зрения перетаскивания карточек между машинами — внутренние картридеры, в отличие от прежних флопов, имеются не всегда. Но зато ликвидируется одно из преимуществ карточек — отсутствие шибко «выпирающих» частей. Кроме того, для загрузки с них требуются те же действия, что и при использовании флэшек: надо перед включением машины вставить картридер с карточкой в разъём, зайти в BIOS и сделать соответствующее устройство первым загрузочным.

Внутренний картридер вставляется в стандартный трёхдюймовый отсек — минимум один такой есть в почти каждом корпусе и, после отмирания флоппи-приводов, он почти наверняка пуст. Подключается он к внутреннему USB-разъёму на материнской плате, от него же обычно и питается. Хотя есть разновидности, требующие дополнительного питания — от четырёхконтактных молексов. Учитывая, что в современных блоках питания последние часто в дефиците (у меня, например, их едва хватает на корпусные вентиляторы), при приобретении внутреннего картридера нужно быть внимательным.

Внутренний картридер существенно удобнее в обращении: поскольку он, подобно приводу OD, как бы присутствует в системе, вне зависимости от наличия в нём носителя, в BIOS можно раз и навсегда установить его как 1-е или 2-е (после OOD) загрузочное устройство.

Наконец, дополнительное преимущество картридера в том, что все они снабжены дополнительными разъёмами для считывания карточек различных форматов. Например, в моём картридере производства Ginzzu (GR- 136 UB, не требует дополнительного питания), кроме разъёма под карты SDXC/SDHC/MMC, имеются «щели» под

  • microSDHC,
  • M2,
  • CFI/CFII,
  • MS/MS PRO Duo, а также
  • дополнительный USB-разъём.

sdcard03

А всего поддерживается 55 типов карт. Конечно, в рамках поставленной перед устройством задачи это не актуально — но кто знает, вдруг возникнет потребность прочитать какую нибудь Memory Stick или Memory Stick Micro. Не говоря уже о том, что лишний разъём USB на лицевой панели корпуса лишним никогда не бывает.

Что же до носителей, то есть собственно SD-карт, то они существуют в двух вариантах — полнозармерном SD (24×32×2,1 мм) и microSD (11×15×1 мм). Существует ещё промежуточный вариант — miniSD (20×21,5×1,4 мм), но в продаже они мне не попадались.
Карточки microSD можно вставить в обычный SD-разъём с помощью специального переходника (он часто идёт в комплексте с оными); говорят, что некоторые микро-карточки в переходнике не нуждаются.

В зависимости от максимально возможного объёма, SD-карты, вне зависимости от типоразмера, делятся на типы:

  • SD 1.0 — от 8 МБ до 2 Гбайт;
  • SD 1.1 — до 4 Гбайт;
  • SDHC — до 32 Гбайт;
  • SDXC — до 2 Тбайт.

Все они совместимы сверху вниз — то есть в разъём, предназначенный для карт SDXC, можно вставить SDHC и SD, но не наоборот.

С точки зрения быстродействия SD-карты разделяются на классы:

  • Class 2 — скорость записи/чтения не менее 2/4 Мбайт/с;
  • Class 4 — скорость записи/чтения не менее 4/8 Мбайт/с);
  • Class 6 — скорость записи не менее 6/12 Мбайт/с;
  • Class 10 — скорость записи не менее 6/20 Мбайт/с.

Представленные в массовой продаже флэшки попадают в диапазон скоростей SD-карт; однако последние субъективно кажутся более быстрыми как при записи, так и при чтении. Хотя наверняка можно специально подобрать флэш-накопители с более высокими скоростными характеристиками, но из-за отсутсвия у них «классности» тут приходится полагаться на слова производителя.

В моём распоряжении было две полноразмерные SD-карты. Одну, на 1 Гбайт, я когда-то покупал для цифровика, вторую, в 2 Гбайт, приобрёл вместе с картридером. «Классность» их нигде не обозначена, но, судя по всему, они принадлежат к Class 2.

Теперь оставалось только перенести на них образы дистрибутивов. Первоочередной задачей советской власти было окучивание двух объектов:

  1. образа «ночной» сборки LiveCD Fedora — xfce-x86_64-20110318.01.iso; для этого предназначалась гигабайтная карточка;
  2. образа 1-й беты Mandriva.2011 — Mandriva.2011-beta1.x86_64; под это дело я определил карту в 2 Гбайт.

Чем я и занялся. Чтобы не повторяться, сразу подчеркну: всё, сказанное ниже относительно переноса образов на SD-карты, применимо и к обычным флэшкам.

Команда dd

Как обычно в Linux, задачу переноса iso-образа на SD-карту можно решить более чем одним способом. И первый из них — использование команды dd.

Делается это не просто, а очень просто:

$ sudo dd if=path2/name.iso of=/dev/sd? bs=1M

Разумеется, в качестве значений входного и выходного файлов надо подставить актуальные в данный момент имя образа и устройства. Для последнего надо указывать именно имя raw-устройства (например, /dev/sdg), а не раздела на нём.

Параметр bs задаёт размер блока записи, если его не указать — запись будет происходить блоками по 512 байт, что очень медленно и печально. Значение этого параметра определяется здравым смыслом и эмпирическими наблюдениями. Иногда рекомендуется задавать его и большим — например, 8M.

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

Способ этот универсален в том смысле, что будет работать в любом дистрибутиве Linux (и вообще в любой POSIX-системе). И ныне, с тех пор, как все образы всех дистрибутивов стали гибридными — с любым из них. Так что оговорки по поводу того, что утилита dd отказалась записывать дистрибутив Имя рек, можно считать достянием истории.

И ещё: именно с помощью команды dd следует записывать образы непосредственно для usb-носителей, такие, как img-образы FreeBSD и DragonFly, например.

liveusb-creator

Если вариант с лобовым dd почему-либо не нравится, или она просто устрашает начинающего пользователя (хотя ничего страшного в ней на самом деле нет), то существует большое количество графических утилит, предназначенных для записи образов на фоешки/карты. Многие из них — дистрибутив-специфичные.

Так, Fedora имеет штатный инструмент для трансформации iso-образов для usb-носителей, в том числе и тех, что призваны работать в Live-режиме. И зовётся он, как ни странно, liveusb-creator.

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

$ sudo yum install liveusb-creator

После чего в меню Приложения -> Системные появляется пункт Fedora LiveUSB Creator. Запустив программу через его посредство и введя пароль суперпользователя, можно видеть такую панель:

sdcard04

Теперь из выпадающего меню можно выбрать один из вариантов поддерживаемых стабильных релизов Fedora:

sdcard05

Каковой будет немедленно скачан, после чего трансформирован. Но нас интересует в данный момент не стабильный релиз, и даже не Fedora, а, предположим, вовсе Mandriva. Так что нажимаем кнопку Обзор и выбираем заранее скачанный iso-образ этого дистрибутива у себя на диске локальном диске. После этого имя выбранного образа появляется в нижнем фрейме панельки:

sdcard06

Одновременно активизируется кнопка Создать Live USB — на неё остаётся только нажать для запуска процесса. И когда ползунок доползёт до конца — загрузочная флэшка готова.

В отличие от команды dd, использование liveusb-creator требует предварительной разметки SD-карты и создания на ней одной из понимаемых этой программой файловых систем — ими являются ext_сколько_угодно или FAT любого рода. Впрочем, фабрично SD-карты и замечены как FAT16 (при объёме до 2 Гбайт включительно) или VFAT (если их объём свыше 2 Гбайт).

SUSE Studio Imagewriter

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

… пока дело не доходит до инсталляции новой системы. Правда, многие дистрибутивы Linux или, скажем, FreeBSD распространяются не только как iso-образы, но и в виде, пригодном для прямой записи на флэшки или SD-карточки. Многие, но не все. В частности, такой способ распространения штатно не предусмотрен пока для openSUSE. Так что при необходимости установки её на машину без оптического привода требуется проделать процедуру записи iso’шника на твердотельный носитель.

Для этой цели существует несколько более или менее универсальных (то есть внедистрибутивных) инструментов — утилита dd, работающая из командной строки, или графические средства типа liveusb-creator и Unetbootin. А в openSUSE есть своя штатная программка этого же назначения. Имя ей — SUSE Studio Imagewriter.

За столь длинным названием скрывается утилита графического режима, простая, как грабли и столь же безотказная в работе. Знакомство с ней следует начать с установки соответствующего пакета — по умолчанию он отсутствует при инсталляции как с DVD/NET-диска, так и с LiveCD. Что делается, например, так:

# zypper in imagewriter

Разумеется, то же самое можно проделать и через YaST. После чего следует вставить флэшку (или SD-карточку) в надлежащий разъём, ни в коем случае её не монтируя, и отыскать Imagewriter в главном меню — в KDE она обнаружится в подпункте Архивация пункта Утилиты:

imwrit00

После запуска Imagewriter’а последует запрос пароля, а затем появится вот такая картинка:

imwrit01

Обращаю внимание, что в строке целевого устройства указано имя вставленного нами носителя. Однако, если до этого к машине было подсоединено какое-либо другое блочное USB-устройство, например, внешний винчестер, то именно его программа и попытается использовать для записи образа:

imwrit01a

Если устройство это смонтировано — ничего страшного: Imagewriter пожалуется на невозможность записи. Если же нет — есть риск потерять информацию с него, так что, товарищи, будьте бдительны.

С указанной оговоркой, всё остальное очень просто: достаточно мышью перетащить файл iso-образа в поле с соответствующей надписью (или, щёлкнув на нём, открыть нужный файл):

imwrit02

После чего нажимается кнопка Write и внимательно просматривается последнее предупреждение — нужное ли целевое устройство в нём указано:

imwrit03

Если да — нажимается кнопка Ok и наблюдается процесс записи образа на целевой носитель:

imwrit04

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

Программа Imagewriter подходит для записи не только любых образов дистрибутива openSUSE (DVD, NET-диска, LiveCD), но и дистрибутивов более иных. В частности, я с её помощью записывал образ Kubuntu 12.10.

usb-creator-gtk

Это — штатная утилита Ubuntu для записи iso-образов на флешки/SD-карты. Она как-то прошла мимо меня, но многократно описана в сети. Так что найти соответствующие материалы труда не составит.

mintstick

Шататная утилита из дистрибутива Mint. Была подробно описана на этой странице, так что оснований повторяться не вижу.

Unetbootin

На мой взгляд, dd и liveusb-creator полностью перекрывают потребности в переносе iso-образов на USB-носители. Однако если ни одно из этих средств по каким-то причинам не глянулось, то в запасе остаётся ещё один инструмент — программа Unetbootin.

Unetbootin также имеется в репозиториях Fedora. Но, в отличие от liveusb-creator, которая является дистрибутив-специфическим инструментом (по крайней мере, ни в одном из других дистрибутивов я её не видел), Unetbootin можно найти и в более иных системах, например, в Debian’е и Ubuntu. Так что если параллельно используется более одного дистрибутива — эта программа может оказаться предпочтительной.

После установки, например, посредством

$ sudo yum install unetbootin

эта программа попадает в меню Приложения -> Системные. Однако, будучи запущена таким образом, она для начала пожалуется на отсутствие прав суперпользователя. И хотя и сделает вид, что работает — ни на какое практическое действие окажется непригодной.

Так что придётся запустить её из командной строки:

$ sudo unetbootin

после чего мы увидим такую панель:

sdcard08

Здесь можно выбрать дистрибутив и его версию для прямого скачивания и трансформации. Однако последние не блещут актуальностью. Так, последняя доступная «напрямую» Fedora — 13-я, а Mandriva — 2008-я. Поэтому «ставим птицу» на пункте Образ диска, отыскиваем нужный и жмём на OK:

sdcard091

Начинается процесс переноса — существенно более длительный, нежели при использовании dd или liveusb-creator, но всё же менее медленный, чем запись образа на компакт:

sdcard10

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

sdcard11

Как и в случае с liveusb-creator, использование Unetbootin требует предварительного форматирования носителя — но уже только в FAT или VFAT. Кроме того, носитель должен быть смонтирован в файловую систему.

Отличается также процесс загрузки с изготовленного посредством Unetbootin носителя. Если после применения dd или liveusb-creator загрузка происходит, как с обычного компакта, то Unetbootin предлагает собственное загрузочное меню. Это связано с тем, что возможности Unetbootin не исчерпываются изготовлением простых загрузочных карт или фоешек — она позволяет разместить на одном носителе несколько образов дистрибутивов и выбирать нужный при загрузке.

Заключение о носителях

И под конец — несколько замечаний о совместимости. Во-первых, носителей, во-вторых, перечисленных программ и дистрибутивов. Сначала — пара слов о носителях.

Как я уже говорил, за носителями ёмкими и скоростными я не гнался — соответствие объёма поставленной задаче при адекватной цене представлялось мне более важным. В итоге все мои карточки (1-2 Гбайт) оказались, судя по показателям быстродействия, выдаваемым дисковой утилитой Palimpsest (около 3 Мбайт/с на запись и 12-14 — на чтение), принадлежащими ко 2-му классу.

Тем не менее, по своему субъективному быстродействию в Live-среде разных дистрибутивов, все они были как минимум не хуже обычных флэшек, причём вне зависимости от того, запускалась ли система через внутренний картридер или внешний USB-адаптер. В первом случае быстродействие субъективно было большим — но вполне возможно, что это кажущийся эффект.

Интересным может быть вопрос о microSD-карточках — по крайней мере для тех, кто, подобно автору этих строк, с такими носителями раньше не сталкивался.

Как я уже говорил, на моём внутреннем картридере имелся разъём, маркированный в качестве SDXC, но о его совместимости с картами SD и SDHC не было сказано ни слова. Не удалось мне и в сети отыскать однозначных указаний на сей предмет. А многочисленные словеса про файловую систему exFAT… не то что бы вызывали опасения, но несколько смущали.

Дабы закрыть эту тему, я обзавёлся карточкой microSD на 1 Гбайт (меньше в моей лавке не было) в комплекте с переходником для вставки в обычный SD-слот. И для начала испытал её в «чистом» виде, через micro же разъём. Карточка системой обнаружена не была.

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

Обескураженный таким оборотом, я обратился за помощью к коллективному разуму Джуйки. И, как это бывало у меня всегда в таких случаях, помощь не замедлила последовать — в реальном времени. Резонные люди популярно объяснили мне, что большинство продающихся у нас таких переходников суть откровенное… эээ… продукт вторичный, иными словами, не отличаются выдающимся качеством, и посоветовали поменять.

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

…самый сильный вурдалак
Все втискивал и всовывал,
И плотно утрамбовывал,
Сопел с натуги, сплевывал,
И желтый клык высовывал.

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

С тех пор проблем с microSD-карточкой не было ни в каком варианте, причём особых усилий по втискиванию и всовывнию особо уже не требовалось. Так что, вероятно, в процессе первого утрамбовывания просто почистились контакты. Помню, в старое время метод вытаскивания и повторного всовывания работал при сбоях ISA- и PCI-видеокарт — знатоки объясняли это именно окислением контактов.

Подводя итог, констатирую: судя по всему, специальным подбором SD-карт для использования их в качестве дистрибутивных носителей заморачиваться не нужно: скорее всего, сработает практически любая из доступных. Ну а если что пойдёт не так — не обижены граждане Руси силушкой…

И ещё одно наблюдение. Создавая собственные варианты дистрибутивов и записываях их потом не флешки, я обнаружил, что объём флешек, маркированных одинаково (например, 2 ГБ) реально может различаться. Так, у меня разюрос составил более 50 МБ (если считать объём в байтах). Конечно, для официальных образов дистрибутивов это не имеет значения. Но если стоит задача впихнуть невпихуемого (то есть собственноручно собранный образ) на имеющийся носитель заданного объёма — это следует учитывать.

Заключение о программах и дистрибутивах

И уж совсем финальный штрих — как программы, перечисленные в настоящем цикле, справляются с записью различных дисрибутивов. В первой версии я уделил этому вопросу немало внимания. Но с тех пор он полностью потерял актуальность, поскольку все образы всех дистрибутивов ныне являются гибридными. Но есть в равной мере предназначены и для прожигания на болканки, и для записи на флешки/SD-карты. Последней могиканинкой, игнорировавшим гибридность, была, какжется, Slackware, но и ней это изжито.

Правда, некоторые из графических утилит, перечисленных выше, «портят» флешки и карточки, создавая на них файловую систему ISO-9660. После чего на такой носитель записать более иной образ или не получается вообще, или система отказывается с него загружаться. Конкретно это относится к SUSE Studio Imagewriter и, по слухам, к mintstick.

Впрочем, лечится это безобразие достаточно просто — той же универсальной командой dd путём записи на устройство «нулей»:

$ sudo dd if=/dev/zero of=/dev/sd? count=1

где /dev/sd? — имя файла устройства, а count —«счётчик» физических блоков новителя. Приведённое значение указывает, что «обнулению» подлежат только первые 512 байт. Обычно этого достаточно. Если почему-то окажется, что нет — можно опустить этот параметр и «обнулить» весь блок.

Дистро в твёрдом теле. Запись образов на USB-флешки и SD-карты: 5 комментариев

  1. А как установить дистр ( Slackel или Salix) на флешку по типу как на жесткий диск ? Чтобы флеха — как жесткий диск.

  2. В том инсталляторе, что на LiveCD обоих дистров (который вот этот http://alv.me/?p=5768), есть штатная функция установки на флешку. Правда, я её сам не опробовал. Она называется Copy live system to usb, но ведь и при установке на диск происходит то же самое.
    А вообще, флешка ведь для инсталлятора ничем от винчестера не отличается, так что можно просто подсунуть её инсталлятору в качестве целевого носителя.

  3. Может я чего не понимаю — только начал вникать. Но ведь штатная функция установки на флешку создаст LiveUSB, где в отдельный файл выносятся некоторые изменения, такие как настройки параметров, документы и т.п. При обновлении программ и доустановке своих размер занимаемой памяти сильно увеличивается (в образе LiveUSB продолжает находиться старая версия, а в файле с изменениями casper-rw — новая). А вот интересует «чтобы как на hdd».

    Я тут кое-чего нагуглил:

    Problem booting salix from external disk
    http://forum.salixos.org/viewtopic.php?f=16&t=4843&p=31712#p31709

    Вooting from usb
    http://forum.salixos.org/viewtopic.php?f=16&t=4992&start=10

    Только сложно разобраться. Может напишете по мотивам how-to ? Или просто растолкуйте. Пожалуйста!

  4. И в случае LiveUSB каталоги /tmp, /run, /var/lock на LiveUSB тоже монтируются в память

Добавить комментарий