Найти тему
Кручинин.Linux

Как сымитировать флешку без флешки в Linux (из файла)

Я уже писал, как сымитировать флешку в VirtualBox. Теперь расскажу, как сымитировать флешку из файла.

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

Создаем файл с помощью утилиты dd.

dd if=/dev/zero of=drive1 bs=1M count=1024 status=progress

-2

Так как мы работаем только с файлом в домашнем каталоге, 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

-3

Но так как /dev/random генерирует бинарный вывод, на экране, в виде ASCII будет тарабарщина.

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

И в комбинации с head

-4

Таким образом, используя в dd if=/dev/zero мы получим нужное количество нулей. Осталось указать, куда мы их запишем, и главное сколько.

of= куда мы записываем. Output File. Назовем наш файл drive1, будет он находиться в домашнем каталоге.

bs= размер блока. Мы укажем 1M — 1 мегабайт*, т.е. 1024 килобайта.

count= количество таких блоков. Если мы хотим получить файл в 1 гигабайт, нам понадобится 1024 мегабайта*, то есть 1024 блока.

status=progress -- отображать статус.

Итак, файл drive1 готов.

* — да, сейчас считается, что мегабайт это 1000 килобайт, а гигабайт 1000 мегабат. Но мы по старинке будем вместо мибибайт и кибибайт упоминать наши привычные хексадецимальные олдскульные мегабайты и килобайты. Мы же не производители дисков, которые хотят продать поменьше, но подроже.

Теперь, можно создать ФС

mkfs.ext4 drive1

-5

Даже sudo не понадобилось

А вот чтобы примонтировать и поработать sudo понадобится

-6

Как сделать флешку с несколькими разделами из файла я расскажу в следующий раз.

Подписывайтесь на мой канал в дзен https://dzen.ru/olinux и будете в курсе новых моих статей по компьютерным сетям и ОС GNU/Linux.

Всегда с вами, Сергей Кручинин преподаватель GNU/Linux и компьютерных сетей

-7