Redefinindo partições do Ubuntu live usb

4

Eu criei um Ubuntu ao vivo usb:

$ dd if=/path/to/ubuntu.iso of=/dev/sdb

Eu instalei minha distro. Agora eu quero voltar meu usb para um uso normal de armazenamento.

$ lsblk
sdb      8:16   1    15G  0 disk 
├─sdb1   8:17   1   1,4G  0 part  # Ubuntu is here
└─sdb2   8:18   1   2,3M  0 part  # Extra space I guess

$ sudo gdisk /dev/sdb
> p  # list patitions
Command (? for help): p
Disk /dev/sdb: 0 sectors, 0 bytes
Logical sector size: 512 bytes
Disk identifier (GUID): A9CA0E15-8539-47B8-9BD1-4942D18E789B
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 18446744073709551582
Partitions will be aligned on 2048-sector boundaries
Total free space is 0 sectors (0 bytes)

Number  Start (sector)    End (sector)  Size       Code  Name

Como você pode ver, nenhuma partição está listada e o disco é visto como vazio.

No entanto, tento criar um novo:

Command (? for help): n
Partition number (1-128, default 1): 
First sector (34-18446744073709551582, default = 2048) or {+-}size{KMGTP}: 
Last sector (2048-18446744073709551582, default = 18446744073709551582) or {+-}size{KMGTP}: 
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 
Changed type of partition to 'Linux filesystem'

Em seguida, escreva as alterações:

Command (? for help): w
Caution! Secondary header was placed beyond the disk's limits! Moving the
header, but other problems may occur!
Warning! The claimed last usable sector is incorrect! Do you want to correct
this problem? (Y/N): Y
Have adjusted the second header and last usable sector value.

Problem: partition 1 is too big for the disk.
Aborting write operation!
Aborting write of new partition table.

Por isso, não funciona. O que estou fazendo de errado? Por enquanto, ele usb doente ainda funciona como um usb ao vivo.

EDIT 1

ok antes de receber respostas Eu tentei formatar cada partição:

$ sudo mkfs.ext4 /dev/sdb1
$ sudo mkfs.ext4 /dev/sdb2

Em seguida, verifiquei o id das partições:

$ blkid /dev/sdb*
/dev/sdb1: UUID="eea83bc3-408b-4287-8c35-0cceeee837bb" TYPE="ext4" 
/dev/sdb2: UUID="1138f1f8-0840-44fe-bb89-935993ed83af" TYPE="ext4" 

Tentou usar fdisk :

$ sudo fdisk /dev/sdb
fdisk: unable to read /dev/sdb: Invalid argument

Então eu fiz como Alex Stragies aconselhado para remover a assinatura do arquivo:

$ dd if=/dev/zero of=/dev/sdb count=4 bs=1M

fdisk trabalhou desta vez:

$ sudo fdisk /dev/sdb

Eu construo um novo msdos partition table :

> o  
Building a new DOS disklabel with disk identifier 0xb4151e51.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
You must set cylinders.
You can do this from the extra functions menu.

e salvou as alterações e saiu fdisk :

>  w
The partition table has been altered!

Syncing disks.

Agora, quando eu verifico partições em fdisk , ele me diz que o dispositivo tem cerca de 4MB em vez de 16GB! Meu stick usb deve ter cerca de 16GB

$ sudo fdisk /dev/sdb
> p
Disk /dev/sdb: 4 MB, 4194304 bytes
131 heads, 2 sectors/track, 31 cylinders, total 8192 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        8191        4095+  ee  GPT

Usando o gdisk:

$ sudo gdisk /dev/sdb
> p
Disk /dev/sdb: 8192 sectors, 4.0 MiB
Logical sector size: 512 bytes
Disk identifier (GUID): 5A262CEA-114A-4DF7-B2D3-99634D40398A
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 8158
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048            8158   3.0 MiB     8300  Linux filesystem

Considerando que lsblk me diz que o dispositivo tem uma capacidade de 15 GB e dois volumes ou 1,4 G e 2,3 M:

$ lsblck
sdb      8:16   1    15G  0 disk 
├─sdb1   8:17   1   1,4G  0 part 
└─sdb2   8:18   1   2,3M  0 part

O que está acontecendo? Estou totalmente perdido aqui

EDIT 2

Eu joguei um pouco com a contagem de dd e fdisk . Eu posso subir para uma contagem = 2000 com dd para obter 2GB copiados:

$ dd if=/dev/zero of=/dev/sdb count=2000 bs=1M

mas não mais. Se eu especificar count=3000 , apenas 2 GB serão copiados.

Para esclarecer as coisas: Eu já tinha esse problema há três anos e desisti do meu antigo pendrive, pois me disseram que provavelmente estava quebrado. Eu achei que era má sorte, como eu também usei como um Ubuntu Live USB antes de formatá-lo e tê-lo quebrado. Agora acontece hoje, nas mesmas circunstâncias, com o Ubuntu. Embora eu tenha usado isso como uma mentira do Arch Linux muitas vezes antes e reformatá-lo nunca falhou. Eu encontrei na internet outros tópicos onde os usuários descrevem o mesmo problema, relacionado a fazer live usb stick (com o Ubuntu). Mas nenhuma solução clara foi encontrada, eu li pessoas aconselhando sobre reformatação, criando nova partição para espaço não alocado e tal. Sureley alguém já experimentou esse problema e encontrou uma solução à prova de bala não? Ou o meu stick usb está perdido para sempre?

    
por kaligne 12.06.2016 / 14:42

2 respostas

3

O fdisk pode não ser capaz de abrir o dispositivo, porque ele vê um sistema de arquivos iso9660.

isso pode ser confirmado com blkid /dev/sdb* .

Em qualquer caso, eu provavelmente tentaria isso:

  • dd if=/dev/zero of=/dev/sdb count=4 bs=1M Isso removerá qualquer assinatura do sistema de arquivos no início
  • tente fdisk /dev/sdb novamente
  • inicie com a operação o (Criar nova tabela de partições do MS-DOS)

  • Em seguida, adicione a partição, pressione n , depois p e, em seguida, várias entradas para selecionar o tamanho máximo. (Caso contrário, o fdisk criará uma pequena partição fictícia)

  • Altere o tipo da partição com t , se desejado

Você precisa ter certeza de que sua instalação detecta de maneira confiável alterações no dispositivo de bloco e atualiza o mapa do kernel para isso. Se não tiver certeza, force com partprobe entre dd e fdisk

    
por 12.06.2016 / 16:13
0

Você pode limpar as partições do usb pendrive com (execute todos os comandos abaixo como root):

dd if=/dev/zero of=/dev/sdb bs=1M count=1000
sync

Isso gravaria 1Gb de zeros a partir do começo de sdb , então isso definitivamente apagaria qualquer informação de partição.
Em seguida, crie uma única partição com fdisk:

fdisk /dev/sdb
n
p
<enter> three times
w
partprobe
sync

Em seguida, verifique com lsblk partitions e crie um sistema de arquivos na nova partição com mkfs.ext4 /dev/sdb1 .

    
por 12.06.2016 / 19:40