Criei um dispositivo mapeador com dmsetup
e criei uma tabela de partição com parted
:
$ fdisk -l /dev/mapper/vdisk
Disk /dev/mapper/vdisk: 511.57 GiB, 549295737344 bytes, 1072843237 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: OMITTED
Device Start End Sectors Size Type
/dev/mapper/vdisk-part1 2048 204799 202752 99M EFI System
/dev/mapper/vdisk-part2 204800 1072841188 1072636389 511.5G Microsoft basic data
Agora, como faço para manipular as partições, por exemplo, formatar a primeira partição para FAT? /dev/mapper/vdisk-part1
Ou /dev/mapper/vdisk1
elas parecem não existir.
PS: Lembro-me de /dev/mapper/vdisk1
que algo semelhante apareceu depois de criar a tabela de partição com parted
, mas desapareceu após uma reinicialização.
Por padrão, o kernel não procura partições em dispositivos DM, então você precisa instruí-lo a fazer isso com uma ferramenta como
partprobe
(do projeto parted) oukpartx
(do projeto multipath; o kpartx cria dispositivos lineares DM para as partições).ou
Você pode criar dispositivos de loop de deslocamento que se referem a partições individuais e operam nelas. Por exemplo, para mapear a primeira partição:
Agora,
/dev/loop0
é sua partição, é onde você fazmkfs
e o que for. Após o uso, façalosetup -d /dev/loop0
para destacar.Os números são calculados da seguinte forma:
offset = start * 512
,sizelimit = (end + 1 - start) * 512 = sectors * 512
, onde 512 é um tamanho de setor. (Nem todas as versões do fdisk mostram o tamanho da partição em setores, algumas mostram em blocos, normalmente de 1K; para resolver a ambiguidade, eu uso os campos que são definitivamente sempre conhecidos.)