Como faço para alterar o tamanho do disco com mkdosfs [closed]

2

Então eu recentemente recebi um cartão SD de 256GB no eBay por muito barato, mas acontece que o número de peça da fábrica impresso no plástico de trás estava listado como um cartão de 8GB.

Foi modificado para que o vendedor aparecesse com 256 GB e não com o tamanho real.

Descobri que existe um software no Linux chamado 'mkdosfs' (que também tem uma versão compilada do Windows , que é o que estou usando, mas essencialmente o mesmo).

Eu apliquei o script padrão no cartão SD, mas isso realmente reduziu o tamanho para 4 GB.

Eu investiguei mais para descobrir que, na verdade, durante a execução há um erro, que aparece por meio segundo antes de fechar, consegui capturar uma captura de tela desse erro:

Este é o script que estou usando para executar o mkdosfs no Windows (onde H: é a letra da unidade do cartão SD)

mkdosfs -n "8GB" -v H: 8386900

Alguém pode me dizer como alterar o script para a saída de um disco de 8GB como resultado (tenho certeza que é algo a ver com o último número)

Obrigado, sua ajuda é muito apreciada.

    
por NaturalistUbuntu 03.06.2017 / 08:19

1 resposta

5

Se você comprou uma unidade anunciada para armazenar 256 GB, mas ela pode conter apenas 8 GB, devolva-a e receba um reembolso do vendedor porque ela não vendeu o produto prometido. Se o vendedor e / ou o fabricante estiverem dispostos a defraudar você com base no tamanho da unidade, quem sabe quais outros defeitos ou falhas latentes a unidade possui. Eu não confiaria em nada mesmo nos primeiros 8 GB.

Para uma solução técnica , em vez de se preocupar com as ferramentas do sistema de arquivos, você deve reparticionar a unidade de modo que sua (s) partição (ões) cobre (m) a primeira 8 GB (ou qualquer tamanho que esteja funcionando), formate a (s) partição (ões) resultante (s) com qualquer sistema de arquivos que você queira. As respectivas ferramentas do sistema de arquivos criarão sistemas de arquivos que abrangem toda a partição de destino por padrão.

Você pode usar seu gerenciador de partições favorito (por exemplo, Gnome Disks, Gerenciador de Partições do KDE, GParted) para reparticionar a unidade. Vou te dar dois exemplos baseados em linha de comando abaixo porque eles são fáceis de reproduzir. Vamos supor que a unidade em questão tenha o nome do kernel /dev/sdz .

Usando fdisk

  1. Inicie fdisk e aponte para a unidade:

    sudo fdisk /dev/sdz
    
  2. Substitua a tabela de partição por uma nova (opção de menu o ).

  3. Crie uma nova partição ( n ),

    1. torne-a uma partição primária ( p ),
    2. crie a primeira partição ( 1 ),
    3. escolha o primeiro setor no deslocamento sugerido de 1 MiB ( 2048 ou nenhuma entrada),
    4. escolha o tamanho desejado de 8 GiB (= 8192 MiB) menos o 1 MiB acima ( +8191M ),
  4. (opcionalmente) imprime a tabela de partições resultante para verificar se você fez como planejado ( p ),

  5. (opcionalmente) defina o tipo de partição como "W95 FAT32 (LBA)" 1 ( t , depois c )

  6. escreva a nova tabela de partições no dispositivo ( w ),

  7. peça ao kernel do Linux para reler a tabela de partições:

    sudo partprobe /dev/sdz
    

Usando sfdisk

Se você não quiser passar por vários menus, você também pode usar sfdisk para especificar uma tabela de partições (defina size_gb para o tamanho desejado em GiB):

size_gb=8

sudo sfdisk /dev/sdz <<EOF
unit: sectors
: start=2048, size=$((($size_gb << 21) - (1 << 11))), Id=c
EOF

Assim como com fdisk , você precisa pedir ao kernel para reler a tabela de partições:

sudo partprobe /dev/sdz

1 O tipo de partição padrão para novas partições criadas com fdisk é "Linux", mas os dois tipos devem estar bem. Todos os principais sistemas operacionais (Linux, Windows e OS X) reconhecerão o conteúdo da partição corretamente com o tipo de partição. Existem alguns casos de canto com ferramentas de terceiros que optam por esperar um determinado tipo de partição por qualquer motivo.

    
por David Foerster 03.06.2017 / 10:12