Записываем загрузочный iso-образ на флеш накопитель в Debian
prolinux
Опубликован: | 2023-07-03T10:11:06.834832Z |
Отредактирован: | 2023-07-03T10:11:06.834832Z |
Статус: | публичный |
В повседневной практике использования персонального компьютера случаются ситуации, когда USB-накопитель с записанной на нём живой операционной системой необходим как воздух. С такой флешки всегда можно загрузить машину, если штатная операционная система дала сбой, и поправить на стационарном диске некоторые файлы. В этом цикле статей мы рассматриваем одну из таких ситуаций, нам необходимо разметить стационарный диск компьютера, и в этой статье я покажу запись iso-образа на флешку под управлением Debian.
О задаче
Дистрибутивные iso-образы с живой операционной системой обычно делаются гибридными, с такого образа можно загрузить машину с любого типа носителя: USB-flash, CD/DVD привод, карта памяти и т.п., при этом, запись на каждый тип носителя должна производиться соответствующим конкретному типу способом.
Существуют различные способы создания загрузочной флешки с живой системой, один из них я опишу в одном из следующих выпусков этого блога. Но в рамках этого обзора я покажу только низкоуровневую запись гибридного iso-образа на флешку при помощи специальной программы (dd). Полученный таким способом накопитель я проверю по контрольной сумме с демонстрацией процесса и всеми необходимыми пояснениями.
Базовая операционная система
Все описанные действия я буду выполнять и показывать на базе операционной системы Debian, для всех других операционных систем с ядром Linux эти действия будут абсолютно аналогичными.
Большинство пользователей компьютера сегодня используют на своих домашних машинах коммерческую ОС всем известной и одиозной корпорации из Северной Америки, увы, описанные здесь действия под управлением этой ОС вряд ли возможны, в любом случае, в моём распоряжении такой системы нет, и эта демонстрация бесполезна для такого рода пользователей.
Готовим накопитель
Итак.., я скачал с ftp.yandex.ru два файла, вот как они выглядят в командной строке моего терминала:
$ ls -1
SHA256SUM
slinux-live-10.1-x86_64.iso
Первый файл - это текстовый файл с контрольными суммами, второй - iso-образ SimplyLinux. Для начала стоит убедиться, что загрузка образа прошла ровно и без ошибок, для этого достаточно проверить контрольную сумму файла.
$ sha256sum slinux-live-10.1-x86_64.iso
7e3f7307f813f31847a3fba7f4d78ced81da83532ef5d42506b0d1181d4adbfe slinux-live-10.1-x86_64.iso
Сравним полученное значение с эталоном из файла SHA256SUM
.
$ grep slinux-live-10.1-x86_64.iso SHA256SUM
7e3f7307f813f31847a3fba7f4d78ced81da83532ef5d42506b0d1181d4adbfe slinux-live-10.1-x86_64.iso
Контрольные суммы совпадают до знака. Уточним размер исходного образа.
$ du -b slinux-live-10.1-x86_64.iso
1951244288 slinux-live-10.1-x86_64.iso
По странному стечению обстоятельств в моей текущей событийности в моём распоряжении есть стандартный флеш-накопитель с неизвестным мне размером дискового пространства, маркировка на устройстве стёрлась от старости. Подключаю накопитель в разъём. Идентифицировать устройство в системе мне поможет программа lsblk.
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 119,2G 0 disk
└─sda1 8:1 0 119,2G 0 part /
sdb 8:16 1 3,8G 0 disk
├─sdb1 8:17 1 2,8G 0 part
└─sdb2 8:18 1 1G 0 part
sr0 11:0 1 1024M 0 rom
Из выхлопа lsblk я определяю, что моё устройство инициализировано системой как sdb
и на нём существуют два каких-то раздела, ни один раздел накопителя на текущий момент не смонтирован, в графе MOUNTPOINTS напротив каждого раздела отсутствует отметка - важная деталь, на которую обязательно следует обращать внимание. Уточним размер дискового пространства накопителя в байтах, чтобы сравнить с размером исходного iso-образа.
$ udisksctl info -b /dev/sdb | grep Size
Size: 4027580416
Отлично, размер исходного образа меньше размера доступного на накопителе пространства, этот накопитель можно использовать. Перед записью я обычно удаляю с накопителя таблицу разделов, вот как это можно сделать:
$ sudo wipefs -a /dev/sdb
[sudo] пароль для newbie:
/dev/sdb: 2 bytes were erased at offset 0x000001fe (dos): 55 aa
/dev/sdb: calling ioctl to re-read partition table: Выполнено
Для этой операции требуются права суперпользователя системы, их я получил при помощи программы sudo и пароля текущего пользователя. Накопитель готов, можно приступать к записи.
Записываем iso-образ на накопитель
Низкоуровневую запись iso-образа на накопитель по силам реализовать программе dd, в этом случае её опять нужно запускать с правами суперпользователя, опять sudo решает.
$ sudo dd oflag=direct if=slinux-live-10.1-x86_64.iso of=/dev/sdb bs=1M status=progress
В команде я указал флаг of
, и задал в нём идентификатор накопителя, /dev/sdb
в данном случае. Вот как это выглядит в моём терминале (нижний край окна):
Как видно на снимке экрана, процесс dd занял терминал на время записи, нужно дождаться завершения этого процесса, когда в терминале вновь появится приглашение командной строки, это будет означать, что iso-образ успешно записан на флешку. Но не торопитесь вынимать накопитель из разъёма USB...
Проверяем накопитель по контрольной сумме
В результате записи образа на накопитель в моём терминале появился следующий выхлоп:
1949302784 bytes (1,9 GB, 1,8 GiB) copied, 253 s, 7,7 MB/s1951244288 bytes (2,0 GB, 1,8 GiB) copied, 253,267 s, 7,7 MB/s
1860+1 records in
1860+1 records out
1951244288 bytes (2,0 GB, 1,8 GiB) copied, 253,377 s, 7,7 MB/s
В последней строчке я вижу размер записанного образа, он совпадает со значением, которое показала программа du в этой демонстрации на стадии подготовки накопителя. Это значение необходимо, чтобы проверить контрольную сумму полученного накопителя, проверять будем контрольную сумму блока этого же размера на флешке, делается это такой командой.
$ sudo head -c 1951244288 /dev/sdb | sha256sum
7e3f7307f813f31847a3fba7f4d78ced81da83532ef5d42506b0d1181d4adbfe -
Поднимаю взгляд по окну терминала чуть выше, где проверял контрольную сумму образа и сравнивал её с эталоном из файла SHA256SUM, и вижу, что контрольная сумма полученная на накопителе совпадает с эталоном.
Всё, задача решена, iso-образ записан на накопитель без сбоев и ошибок, флешку можно вынимать из разъёма и грузить с неё любой компьютер, который умеет грузиться с таких устройств. Совпавшая контрольная сумма даёт определённую гарантию, накопитель готов к использованию.
Выводы и умозаключения
-
Перед записью следует убедиться, что размер дискового пространства выбранного накопителя полностью вмещает записываемый iso-образ;
-
Записать гибридный iso-образ на USB-flash накопитель можно различными способами, но если на вашем компьютере уже есть операционная система с ядром Linux, то самый простой способ - это терминал и программа dd;
-
Перед записью следует убедиться, что ни один раздел флешки не смонтирован, и если какой-то раздел смонтирован, его следует отмонтировать;
-
Проверка контрольной суммы на уже записанном накопителе избавит в перспективе от многих хлопот и гарантирует полную аутентичность полученного носителя исходному iso-образу.