Criei um img
arquivo através do seguinte comando:
dd if=/dev/zero bs=2M count=200 > binary.img
É apenas um arquivo com zeros, mas posso usá-lo fdisk
e criar uma tabela de partição:
# fdisk binary.img
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x51707f21.
Command (m for help): p
Disk binary.img: 400 MiB, 419430400 bytes, 819200 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: dos
Disk identifier: 0x51707f21
e, digamos, uma partição:
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-819199, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-819199, default 819199):
Created a new partition 1 of type 'Linux' and of size 399 MiB.
Command (m for help): w
The partition table has been altered.
Syncing disks.
Quando verifico a tabela de partição, obtenho o seguinte resultado:
Command (m for help): p
Disk binary.img: 400 MiB, 419430400 bytes, 819200 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: dos
Disk identifier: 0x7f3a8a6a
Device Boot Start End Sectors Size Id Type
binary.img1 2048 819199 817152 399M 83 Linux
Portanto, a partição existe. Quando tento formatar esta partição via gparted, recebo o seguinte erro:
Não sei por que ele procura binary.img1
e não tenho idéia de como formatar a partição a partir do comando live.
Alguém sabe como formatá-lo usando o sistema de arquivos ext4?
filesystems
partition
disk-image
Mikhail Morfikov
fonte
fonte
Couldn't find valid filesystem superblock.
. Aqui está a foto: i.imgur.com/dl7XAC4.png . Isso é algum tipo de bug?Respostas:
Você pode acessar a imagem do disco e suas partições individuais através do recurso de loopback. Você já descobriu que alguns utilitários de disco funcionarão (razoavelmente) alegremente nas imagens de disco. No entanto,
mkfs
não é um deles (mas estranhamentemount
é).Aqui é produzido a partir de
fdisk -lu binary.img
:Para acessar a partição que você criou, você tem algumas opções
A rota explícita
A saída
/dev/loop0
é o nome do dispositivo de loop que foi alocado. O--offset
parâmetro é apenas o deslocamento da partição (Start
) multiplicado pelo tamanho do setor (512
). Considerando que--sizelimit
é o tamanho da partição, e você pode calculá-lo da seguinte maneira: End-Start + 1, que é 819199-2048 + 1 = 817152, e esse número também deve ser multiplicado pelo tamanho do setor.Você pode usar
/dev/loop0
como referência à partição:A rota implícita
A saída
/dev/loop0
é o nome do dispositivo de loop primário que foi alocado. Além disso, a--partscan
opção diz ao kernel para procurar no dispositivo uma tabela de partição e atribuir dispositivos de loop subsidiários automaticamente. No seu caso, com a única partição que você também obtém/dev/loop0p1
, que você pode usar como referência à partição:fonte
fdisk
saída.Existe outra maneira de fazer isso em geral, use
kpartx
( não relacionado ao kde)e agora você deve ter todos os dispositivos de partições definidas em
/dev/mapper
como loop0p1 , loop0p2 , ...e depois
Opcionalmente, quando terminar, você também pode executar
se livrar do loop0p? deduzir
fonte
(… E depois para
binary.img2
enterrado no comentário).Isso ocorre porque as ferramentas esperam que os nomes dos arquivos sigam um padrão específico. Esse padrão é aquele usado pelos arquivos do dispositivo para discos e volumes de disco reais no seu sistema, a saber:
sda
(ou outra coisa). É isso quefdisk
espera fazer uso.sda1
,sda2
,sda3
, e assim por diante. É disso que ferramentas, como asgparted
esperadas, devem usar quando mandammkfs
fazer coisas em volumes de discos individuais .Obviamente, os arquivos comuns não se sobrepõem da mesma maneira que os arquivos dos dispositivos de disco. As discussões envolvendo o sistema de arquivos de auto-retorno que você tem visto são todos sobre a tomada de uma única imagem-disco inteiro e usando auto-retorno para criar as
1
,2
,3
, e assim por diante arquivos que refletem as fatias individuais dentro dele, uma vez que o layout da partição desejado foi escrito para a tabela de partição.fonte
Embora este tópico não esteja diretamente relacionado, ele menciona muitas informações iguais e relacionadas.
Wiki Debian | Raspberry Pi e qemu-user-static
Se você não pode
apt
instalar alguns dos comandos mencionados nesta postagem, tente usarapt-cache search [package_name]
. Isso pode não gerar nenhum resultado se o comando vier de um pacote com um nome diferente.Por exemplo,
losetup
anteriormente poderia ser instalado comolosetup
usadoapt install losetup
, mas agora faz parteutil-linux
do repositório do Ubuntu. Para descobrir qual pacote atua como um contêiner para outro pacote, você deve usar a pesquisa do repositório online para sua distribuição Linux. Ou, se você precisar instalá-lo de outra fonte, use um mecanismo de pesquisa na Web.Vale a pena conferir alguns pacotes ...
util-linux genisoimage dosfstools squashfs-tools fsarchiver xfsprogs reiserfsprogs reiser4progs jfsutils ntfsprogs btrfs-tools
Toda distribuição Linux também possui suas próprias páginas de manual online. Às vezes, é mais fácil usar as páginas de manual do que um tutorial. As páginas do manual também informarão todas as opções e parâmetros de comando. Um tutorial geralmente se concentrará apenas nos usados.
fonte
Executável mínimo
sfdisk
+mke2fs
exemplo semsudo
Neste exemplo, criaremos, sem
sudo
ousetsuid
, um arquivo de imagem que contém duas partições ext2, cada uma preenchida com arquivos de um diretório host.Em seguida, usaremos
sudo losetup
apenas para montar as partições para testar se o kernel do Linux pode realmente lê-las, conforme explicado em: /programming/1419489/how-to-mount-one-partition-from-an-image -arquivo-que-contém-múltiplas-partições / 39675265 # 39675265Para mais detalhes, consulte:
sfdisk
: lida com a tabela de partições: /superuser/332252/how-to-create-and-format-a-partition-using-a-bash-script/1132834#1132834mke2fs
: lida com a formatação EXT de partições: /superuser/605196/how-to-create-ext2-image-without-superuser-rights/1366762#1366762O exemplo:
Testado no Ubuntu 18.04. GitHub upstream .
Auxiliar para agrupar um arquivo de sistema de arquivos brutos existente em uma imagem
Extraído do exposto, o seguinte pode ser útil:
GitHub upstream .
fonte