Мне нужно создать файловую систему только с одним разделом из ничего ( /dev/zero
). Я попробовал эту последовательность команд:
dd if=/dev/zero of=mountedImage.img bs=512 count=131072
fdisk mountedImage.img
n
p
2048
131072
По сути, мне нужно создать 64-мегабайтный файл изображения, заполненный нулями. Затем я использую, fdisk
чтобы добавить новый раздел для новой файловой системы (которая в конечном итоге должна быть FAT32), начиная с сектора 2048
и используя все оставшиеся сектора.
losetup /dev/loop1 mountedImage.img
mkfs -t vfat /dev/loop1
Но тут у меня проблемы с проблемами. Если я настраиваю loop
устройство и форматирую его mkfs -t vfat
, таблица разделов перезаписывается, а файловая система (FAT32) помещается на диск. Мне не нужен весь диск, отформатированный в FAT32, мне просто нужен мой основной раздел.
Кто-нибудь знает, как я могу отформатировать только один раздел необработанного образа диска, а не весь образ?
источник
mkfs
вызов. Мне пришлось прочитать ваш пост 3 раза, чтобы понять вашу проблему. Хотя я не могу вам помочь, я заинтересован в том, почему вы создаете файл изображения (!), Но все же хотите оставить первые n «секторов» неиспользованными.loop
является ли модуль модулем или встроен в ядро), поэтому я думаю, что для каждого сайта полезно иметь свою версию вопроса, и я проголосовал за повторное открытие.Ответы:
Если в Linux при загрузке
loop
модуля убедитесь, что вы передаетеmax_part
опцию модулю, чтобы петлевые устройства были разделены.Проверьте текущее значение:
Если это 0:
Чтобы сделать этот параметр постоянным, добавьте следующую строку
/etc/modprobe.conf
в файл или в файл,/etc/modprobe.d
если этот каталог существует в вашей системе:Если
modprobe -r loop
произойдет сбой из-за «встроенного цикла модуля», вам нужно будет добавить егоloop.max_part=31
в командную строку ядра и перезагрузиться. Если ваш загрузчик Grub2, добавьте к нему значениеGRUB_CMDLINE_LINUX
inetc/default/grub
.Теперь вы можете создать устройство с разделенным циклом:
(обратите внимание, что вам нужна относительно свежая версия Linux).
источник
loop.max_part=31
его в командную строку ядраloop.maxpart=31
илиloop.max_part=31
в командной строке ядра?losetup /dev/loop0 file -o 1048576 --sizelimit limit
Заданное смещение должно быть в байтах (1048576 = 2048 секторов * 512 байтов на сектор).
mount -o loop,offset=1048576,sizelimit=limit
Для получения дополнительной информации см. Losttup и mount .
источник
Следующие процедуры позволяют вам смонтировать разделы образа для их изменения.
потерять 2.21 опция -P
Создает один
/dev/loopXpY
на раздел.Преимущество: исполняемый файл предустановлен во многих дистрибутивах (пакет util-linux).
Недостаток: совсем недавний вариант, отсутствующий в Ubuntu 14.04.
losetup -P
автоматизацияИспользование:
Источник:
kpartx
Выход:
где
loop0p1
находится первый раздел, поэтому мы можем сделать:Преимущество этого метода: работает на Ubuntu 14.04 без перезагрузки.
источник