Я уже писал, как сымитировать флешку в VirtualBox. Теперь расскажу, как сымитировать флешку из файла.
Если речь идет о настоящей установке Linux на компьютере, либо по каким-то причинам флешки нет, а создавать дополнительный диск нет возможности (например, не так много места на хостовой машине), в качестве накопителя можно воспользоваться специально созданным файлом.
Создаем файл с помощью утилиты dd.
dd if=/dev/zero of=drive1 bs=1M count=1024 status=progress
Так как мы работаем только с файлом в домашнем каталоге, sudo даже не понадобилось.
dd — disk destroyer (на самом деле диск дупликатор, но с задачей destroy утилита тоже прекрасно справляется. Иногда без ведома того, кто ее вводит, не разобравшись с ее синтаксисом)
if= исходный файл. Буквально Input File.
Запомните, if — ИСХОДНЫЙ ФАЙЛ.
Обычно здесь используют имя блочного устройства, например, чтобы создать образ CD-диска, тогда if=/dev/sr0, но может быть и наоборот файл образа диска, например ubuntu.iso.
В нашем случае в качестве источника мы используем файл специального символьного устройства /dev/zero который генерирует бесконечную последовательность нулей (символов с кодом 0, поэтому cat ничего не отобразит). Другой вариант забить наш новый диск случайными символами, для этого можно использовать /dev/random.
Его можно посмотреть с помощью cat, успейте только остановить с помощью Ctrl-C пока вывод не забил весь экран.
Также можно вывести с помощью head
head /dev/random
Но так как /dev/random генерирует бинарный вывод, на экране, в виде ASCII будет тарабарщина.
Для человека чтобы посмотреть бинарные данные помогает утилита hexdump
И в комбинации с head
Таким образом, используя в dd if=/dev/zero мы получим нужное количество нулей. Осталось указать, куда мы их запишем, и главное сколько.
of= куда мы записываем. Output File. Назовем наш файл drive1, будет он находиться в домашнем каталоге.
bs= размер блока. Мы укажем 1M — 1 мегабайт*, т.е. 1024 килобайта.
count= количество таких блоков. Если мы хотим получить файл в 1 гигабайт, нам понадобится 1024 мегабайта*, то есть 1024 блока.
status=progress -- отображать статус.
Итак, файл drive1 готов.
* — да, сейчас считается, что мегабайт это 1000 килобайт, а гигабайт 1000 мегабат. Но мы по старинке будем вместо мибибайт и кибибайт упоминать наши привычные хексадецимальные олдскульные мегабайты и килобайты. Мы же не производители дисков, которые хотят продать поменьше, но подроже.
Теперь, можно создать ФС
mkfs.ext4 drive1
Даже sudo не понадобилось
А вот чтобы примонтировать и поработать sudo понадобится
Как сделать флешку с несколькими разделами из файла я расскажу в следующий раз.
Подписывайтесь на мой канал в дзен https://dzen.ru/olinux и будете в курсе новых моих статей по компьютерным сетям и ОС GNU/Linux.
Всегда с вами, Сергей Кручинин преподаватель GNU/Linux и компьютерных сетей