Создание отформатированного раздела из ничего

Мне нужно создать файловую систему с одним разделом из ничего ( /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 устройство loop и отформатирую его с помощью mkfs -t vfat , таблица разделов будет перезаписана, а файловая система (FAT32) будет помещена на диск. Мне не нужен весь диск, отформатированный с FAT32, мне просто нужен мой основной раздел.

Кто-нибудь знает, как я могу отформатировать только один раздел образа необработанного диска, а не целого изображения? Пожалуйста помоги.

3 Solutions collect form web for “Создание отформатированного раздела из ничего”

Если в Linux при загрузке модуля loop убедитесь, что вы передаете параметр max_part в модуль, чтобы устройства цикла были разделяемыми.

Проверьте текущее значение:

 cat /sys/module/loop/parameters/max_part 

Если это 0:

 modprobe -r loop # unload the module modprobe loop max_part=31 

Чтобы сделать этот параметр постоянным, добавьте следующую строку в /etc/modprobe.conf или в файл в /etc/modprobe.d если этот каталог существует в вашей системе:

 options loop max_part=31 

Если modprobe -r loop завершается с ошибкой, потому что «цикл модуля встроен», вам нужно добавить loop.max_part=31 в свою командную строку ядра и перезагрузить компьютер. Если ваш загрузчик Grub2, добавьте к нему значение GRUB_CMDLINE_LINUX в etc/default/grub .

Теперь вы можете создать устройство с разделяемым контуром:

 truncate -s64M file # no need to fill it with zeros, just make it sparse fdisk file # create partitions losetup /dev/loop0 file mkfs.vfat /dev/loop0p1 # for the first partition. mount /dev/loop0p1 /mnt/ 

(обратите внимание, что вам нужна сравнительно новая версия Linux).

losetup /dev/loop0 file -o 1048576 --sizelimit limit

Указанное смещение должно быть в байтах (1048576 = 2048 секторов * 512 байт на сектор).

mount -o loop,offset=1048576,sizelimit=limit

Для получения дополнительной информации см. Losetup и mount .

опция losetup 2.21-P

 losetup -P -f --show my.img 

Создает один /dev/loopXpY каждого раздела.

Преимущество: исполняемый файл предварительно установлен во многих дистрибутивах (пакет util-linux).

Недостаток: довольно недавний вариант, которого нет в Ubuntu 14.04.

losetup -P automation

Применение:

 $ los my.img /dev/loop0 /mnt/loop0p1 /mnt/loop0p2 $ ls /mnt/loop0p1 /whatever /files /youhave /there $ # Cleanup. $ losd 0 $ ls /mnt/loop0p1 $ ls /dev | grep loop0 loop0 

Источник:

 los() ( img="$1" dev="$(sudo losetup --show -f -P "$img")" echo "$dev" for part in "$dev"?*; do dst="/mnt/$(basename "$part")" echo "$dst" sudo mkdir -p "$dst" sudo mount "$part" "$dst" done ) losd() ( dev="/dev/loop$1" for part in "$dev"?*; do dst="/mnt/$(basename "$part")" sudo umount "$dst" done sudo losetup -d "$dev" ) 

kpartx

 sudo apt-get install kpartx losetup -fs my.raw sudo kpartx -a my.img ls /dev/mapper 

Вывод:

 /dev/mapper/loop0 /dev/mapper/loop0p1 

где loop0p1 – это первый раздел, поэтому мы можем сделать:

 mkdir -pd sudo mount /dev/mapper/loop0p1 d 

Преимущество этого метода: работает на Ubuntu 14.04 без перезагрузки.

  • Запретить пользователю без полномочий root форматировать раздел
  • CentOS - создание раздела для OpenVZ
  • Как клонировать раздел MTPFS смонтированного телефона Android?
  • Реализация RAID-6 с четырьмя дисками и GPT
  • Таблица разделов xfs на массиве RAID повреждена
  • Раздел «X» не начинается с границы физического сектора
  • Установка Debian, установка / var / tmp / home в том же разделе
  • Репликация сложной структуры разделов с томами LUKS и LVM
  • Установка Centos / usr в новый раздел
  • команда linux + lsblk
  • Определение физического объема внутри несезонного диска
  • Interesting Posts

    Открывает ли bash файлы в O_APPEND при использовании «>>» в Linux?

    Прервать режим копирования в Экран

    Проблема с переключением сети

    Узнайте, в какой каталог записывается процесс?

    Остановить apt-get от попыток загрузить переводы из определенных репозиториев

    В Debian Stretch драйверы Nouveau заставляют мой компьютер замораживать, приходилось устанавливать в мою систему несвободные пакеты NVIDIA, любые альтернативы?

    трубопровод с недетерминированным выходом

    Почему cpu.cfs_quota_us не ограничивает пропускную способность ЦП LXC-контейнера?

    Как проверить, успешно ли у пользователя root ssh'd на моем сервере?

    Linux HID-драйвер для клавиатуры, отправляющий 1 дополнительный байт

    Kali Linux: производитель заявляет, что не предоставляет драйверы

    Загрузка BSD с помощью GRUB2Win

    linuz-linux не найден в efi-bootmanager на iMac

    Разделить tmux окна с теми же ключами, что и в Emacs?

    Как найти каталог файлов?

    Linux и Unix - лучшая ОС в мире.