LiveUSB: запись образа на флешку

/ Просмотров: 7952

Встретилось на двух форумах утверждение, что после записи образа Linux Mint 16 MATE 32-bit на флешку с помощью USB Image Writer флешка не читается.

Не будем вдаваться в причины, не будем также обсуждать, что там в этом usb-imagewriter накручено на питоне вокруг древней заслуженной команды dd, не будем даже устанавливать пакеты fuseiso/fuseiso9660, обойдемся наличными средствами операционной системы (в данном случае LinuxMint Росинка 2013 alpha) и посмотрим, так ли всё плохо на самом деле.

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

Как записать LiveUSB командой dd – см. Послесловие ниже.
А пока воткнём флешку с записанным образом в подобающее отверстие на компьютере и опросим "экспертов", что они видят и как понимают ситуацию.

Эксперт первый – blkid:

sudo blkid

(Ненужную часть вывода везде опускаю)

/dev/sde1: LABEL="Linux Mint 16 MATE 32-bit" TYPE="iso9660"

Очень хорошо, образ виден.

Эксперт второй – fdisk:

sudo fdisk -l
................
Диск /dev/sde1: 1283 МБ, 1283457024 байт
64 головок, 32 секторов/треков, 1224 цилиндров, всего 2506752 секторов
Units = секторы of 1 * 512 = 512 bytes
Размер сектора (логического/физического): 512 байт / 512 байт
I/O size (minimum/optimal): 512 bytes / 512 bytes
Идентификатор диска: 0x086dfc2e
Устр-во     Загр     Начало       Конец       Блоки   Id  Система
/dev/sde1p1   *           0     2506751     1253376   17  Скрытый HPFS/NTFS

Прэлестно, как говорила одна ворона.

Эксперт третий – cfdisk:

Уже зная, что наша флешка является устройством /dev/sde, просим конкретно:

sudo cfdisk /dev/sde

Флешку вижу!

Этот псевдографический младший брат fdisk смотрит на тип файловой системы так же, как blkid. Хорошо.

Эксперт четвертый – parted:

sudo parted -l
..................................
Ошибка: Неверная таблица разделов - рекурсивный раздел на /dev/sde.       
Игнорировать/Ignore/Отменить/Cancel? I                                    
Модель: JetFlash Transcend 8GB (scsi)
Диск /dev/sde: 8056MB
Размер сектора (логич./физич.): 512B/512B
Таблица разделов: msdos
Номер  Начало  Конец  Размер  Тип  Файловая система  Флаги

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

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

Прислушаемся к fdisk и blkid и попытаемся примонтировать флешку как образ:

Монтируем "нечитаемую" флешку

mkdir ~/Mint16-Mate && sudo mount -o loop -t iso9660 /dev/sde1 ~/Mint16-Mate

Терминал сообщает:

mount: предупреждение: похоже, /home/zenchap/Mint16-Mate примонтирован только для чтения.

Ну и ладушки. Для чтения так для чтения, нам с ним не целоваться. Главное – он есть, живой и невредимый. Теперь он виден на рабочем столе и доступен в любом файловом менеджере, хотя и с табличкой "Руками не трогать".

Зато мы можем проверить целостность файлов образа. Войдем в ~/Mint16-Mate

cd ~/Mint16-Mate

и запустим проверку:

md5sum -c MD5SUMS

Получим такой вывод (привожу только начало и конец):

./.disk/base_installable: ЦЕЛ
./.disk/casper-uuid-generic: ЦЕЛ
./.disk/cd_type: ЦЕЛ
./.disk/info: ЦЕЛ
./.disk/live-uuid-generic: ЦЕЛ
....... и так далее ..........
./pool/main/w/wvstreams/libwvstreams4.6-extras_4.6.1-6_i386.deb: ЦЕЛ
./pool/non-free/s/sl-modem/sl-modem-daemon_2.9.11~20110321-9_i386.deb: ЦЕЛ
./preseed/cli.seed: ЦЕЛ
./preseed/linuxmint.seed: ЦЕЛ
md5sum: ПРЕДУПРЕЖДЕНИЕ: неправильный формат строк 6

Предупреждение можно игнорировать, утилита md5sum ругается на первые 6 строк файла – пояснительный текст и пустые строки.

После того, как вы насмотритесь на образ, не забудьте отмонтировать его и убрать папку ~/Mint16-Mate, чтоб не засорять домашний каталог:

cd

и

sudo umount ~/Mint16-Mate && rmdir ~/Mint16-Mate

Осталась главная проверка:

Загружаемся с флешки.

Тут надо сказать, что первая попытка была у меня неудачной: дошло до логотипа Минта – и замёрзло. Принудительно перезагрузил комп кнопкой на системнике, попытался повторить – и LinuxMint 16 "Petra" Mate RC прекрасно (и быстро!) загрузился.
С тех пор загружался с этой флешки многократно и без всяких приключений.

Послесловие: создаем LiveUSB командой dd.

Может, USB Image Writer – замечательная программа, а мы тут чего-то не поняли, но я сильно в этом сомневаюсь.

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

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

Общий вид команды для записи образа на устройство (в нашем случае флешку) таков:

sudo dd if=путь_к_образу of=имя_устройства_для_записи

Вот с этим "имя_устройства_для_записи" и связана основная опасность. Если вы по ошибке укажете не флешку, а, скажем, раздел, на котором расположены ваши документы, фото, фильмы и т.п., или даже ваша операционная система – можете с ними распрощаться. Чтобы не сомневаться, используйте lsscsi (если у вас его нет, терминал предложит его установить). Можно, конечно, использовать и другие команды, но lsscsi, имхо, даёт самый краткий и наглядный результат. Вот для примера мой вывод команды lsscsi:

[0:0:0:0]    disk    ATA      SAMSUNG HD501LJ  CR10  /dev/sda 
[1:0:0:0]    cd/dvd  TSSTcorp CDDVDW SH-S223F  SB02  /dev/sr0 
[3:0:0:0]    disk    ATA      WDC WD5000AADS-0 01.0  /dev/sdb 
[4:0:0:0]    disk    ATA      WDC WD10EARS-00Y 80.0  /dev/sdc 
[4:0:1:0]    disk    ATA      ST3120813AS      2AAA  /dev/sdd 
[6:0:0:0]    disk    JetFlash Transcend 8GB    8.07  /dev/sde

Как видите, в моем случае флешка поименована в системе как /dev/sde. Таким образом, скачав, например, по этой ссылке образ linuxmint-16-mate-dvd-32bit-rc.iso, и перейдя в каталог со скачанным образом, даем команду

sudo dd if=linuxmint-16-mate-dvd-32bit-rc.iso of=/dev/sde

и ждём выполнения.

dd работает молча. Если хочется знать, как там у нее идут дела, откройте на другом столе еще один терминал и вбейте

sudo pkill -USR1 '^dd$'

В первом терминале dd на секундочку прервется, чтобы вывести сообщение о том, сколько она уже сделала, в таком примерно формате:

N* записей получено
N* записей отправлено
скопировано N* байт (N* B), 256,586 c, N* kB/c

Так можно дергать dd сколько угодно, она не обидится и всё равно запишет вам полноценную LiveUSB систему.

Note:   Как всегда в Linux, существуют и другие возможности контроля за работой dd. Например, в репах есть такой пакет bar, цитирую: "Bar - простой инструмент для обработки потока данных и отображения пользователю на стандартном потоке ошибок информацию (a) о количестве переданных данных, (b) скорость передачи данных, и, если известен размер передаваемых данных, (c) ожидаемое оставшееся время, процент завершенности, а также линейку прогресса."

Употребляется примерно так:

sudo dd if=путь_к_образу of=имя_устройства_для_записи | bar <опции> > /dev/null

Сам я, однако, этой утилитой не пользовался и оставляю ее изучение заинтересованным юзерам.

Тем, кто хочет больше узнать об этой мощной команде, рекомендую статью Алексея Дмитриева из замечательной серии HuMan. Конечно, и просто man dd читать нужно, он хоть и eng, но на удивление небольшой – за счет того, что полная документация вынесена в info и доступна по команде

info coreutils 'dd invocation'

или просто

info dd

Кроме того, гугль поможет вам найти еще массу интересных материалов по теме.

Комментариев: 2 RSS

Не. Я вроде бы и пытался объяснить, насколько dd проще.

Впрочем, как знаете smile

Оставьте комментарий

Комментарий будет опубликован после проверки

(обязательно)