estendendo uma partição por resize2fs

4

Eu tenho um cartão SD de 4 GB. Antes da carga da imagem

root@ubuntu# fdisk -l
Disk /dev/sdb: 3965 MB, 3965190144 bytes
49 heads, 48 sectors/track, 3292 cylinders, total 7744512 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
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            8192     7744511     3868160    b  W95 FAT32

Eu carreguei uma imagem SD de 2GB no cartão por dd if=2gbsd-noeclipse-latest.dd of=/dev/sdb bs=4M conv=fsync . O fdisk -l de saídas:

root@ubuntu# fdisk -l
Disk /dev/sdb: 3965 MB, 3965190144 bytes
122 heads, 62 sectors/track, 1023 cylinders, total 7744512 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
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1       16063        8031+   b  W95 FAT32
/dev/sdb2           16064       20158        2047+  da  Non-FS data
/dev/sdb3           20162       24257        2048   da  Non-FS data
/dev/sdb4           24260     3678207     1826974   83  Linux

então eu tenho 2GB que não é usado. Desejo estender sdb4 para que eu possa usar o espaço de 2 GB que não está incluído.

Então, eu calculo o espaço não utilizado como (7744512-3678207)*512= 2081948160 byte e 2081948160 / 1048576 = 1985.50048828 MB . Então, eu vou estender aproximadamente 1900 MB. Eu uso resize2fs para fazer isso:

resize2fs /dev/sdb4 1900M

No entanto, gera

resize2fs 1.42.5 (29-Jul-2012)
open: No such file or directory while opening /dev/sdb4

Alguém poderia me dizer como devo usar o comando acima ou de que outra forma eu posso estender o sdb4 ?

    
por sven 16.05.2013 / 20:16

1 resposta

5

Você deve diferenciar o redimensionamento de um dispositivo de bloco (aqui: /dev/sdb4 ) do redimensionamento de um sistema de arquivos. Um sistema de arquivos pode ser menor, mas não maior que o dispositivo de bloco subjacente.

Você deve fazer um backup da tabela de partições:

sfdisk -d /dev/sdb > ~/sfdisk_sdb.txt

Em seguida, você faz uma cópia desse arquivo e adapta a linha semelhante a esta:

/dev/sdb4 : start=24260, size=3653948, Id= 83

Você deseja que a partição termine no último setor do dispositivo (isto é, 7744511; o primeiro é 0 não 1). O tamanho é esse número menos o setor inicial mais um (a contagem inicial e final do setor). Então você substitui a tabela de partições:

sfdisk /dev/sdb <~/sfdisk_sdb.mod.txt

Depois disso, você pode usar resize2fs sem um parâmetro de tamanho. Ele usará todo o tamanho de /dev/sdb4 . Você deve executar e2fsck -f /dev/sdb4 imediatamente antes de usar resize2fs .

    
por 16.05.2013 / 20:31