Formata uma unidade externa com ext4

2

Eu tenho um PI de framboesa ao qual um disco rígido externo de 1T é conectado por USB. A unidade USB funciona bem se for formatada em FAT, mas se eu formatar a unidade em ext4, a unidade não é montada corretamente e isso me causa todos os tipos de erros. Isso é o que eu faço:

fdisk -l

e o resultado é

Device Boot      Start         End      Blocks   Id  System
/dev/sda1               2  1953525167   976762583   83  Linux

então eu corro

mkfs.ext4 /dev/sda1

e isso roda e faz o que faz sem nenhum erro. então montei a unidade por

mount /dev/sda1 /mnt/external1

e isso demora um pouco, mas retorna sem erros. Duas coisas acontecem aqui. Se eu fizer um ls / mnt / external1, recebo o seguinte erro:

ls: reading directory /mnt/external1: Input/output error

a outra coisa que acontece é que se eu fizer um fdisk -l eu vou conseguir agora:

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               2  1953525167   976762583   83  Linux

meu disco agora é movido para sdb1 e, se eu tentar montar sdb1, os mesmos erros acontecem e o disco reaparece sob sda1.

O que estou fazendo de errado?

Aqui está a saída do dmesg

[98931.054218] usb 1-1.2: New USB device found, idVendor=13fd, idProduct=1340
[98931.054254] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[98931.054274] usb 1-1.2: Product: External        
[98931.054290] usb 1-1.2: Manufacturer: Generic 
[98931.054308] usb 1-1.2: SerialNumber: 533144464256454C20202020
[98931.055405] usb-storage 1-1.2:1.0: USB Mass Storage device detected
[98931.058815] scsi12 : usb-storage 1-1.2:1.0
[98932.054219] scsi 12:0:0:0: Direct-Access     Generic  External         2.10 PQ: 0 ANSI: 4
[98932.055913] smsc95xx 1-1.1:1.0 eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
[98932.056737] sd 12:0:0:0: [sdb] 1953525168 512-byte logical blocks: (1.00 TB/931 GiB)
[98932.058233] sd 12:0:0:0: [sdb] Write Protect is off
[98932.058270] sd 12:0:0:0: [sdb] Mode Sense: 21 00 00 00
[98932.059724] sd 12:0:0:0: [sdb] No Caching mode page found
[98932.059763] sd 12:0:0:0: [sdb] Assuming drive cache: write through
[98932.066927] sd 12:0:0:0: [sdb] No Caching mode page found
[98932.066967] sd 12:0:0:0: [sdb] Assuming drive cache: write through
[98932.090896]  sdb: sdb1
[98932.096586] sd 12:0:0:0: [sdb] No Caching mode page found
[98932.096629] sd 12:0:0:0: [sdb] Assuming drive cache: write through
[98932.096654] sd 12:0:0:0: [sdb] Attached SCSI disk
[98935.392602] Buffer I/O error on device sda1, logical block 121667584
[98935.392632] lost page write due to I/O error on sda1
[98935.392651] JBD2: Error -5 detected when updating journal superblock for sda1-8.
[98935.392822] Aborting journal on device sda1-8.
[98935.392857] Buffer I/O error on device sda1, logical block 121667584
[98935.392872] lost page write due to I/O error on sda1
[98935.392887] JBD2: Error -5 detected when updating journal superblock for sda1-8.
[98970.278132] EXT4-fs warning (device sda1): __ext4_read_dirblock:908: error reading directory block (ino 2, block 0)
[98970.278186] EXT4-fs error (device sda1): __ext4_journal_start_sb:62: Detected aborted journal
[98970.300661] EXT4-fs (sda1): Remounting filesystem read-only
    
por Farzad 24.01.2014 / 06:52

4 respostas

2

Para criar a partição, usei fdisk invocando sudo fdisk /dev/sda . A sessão interativa é fácil de seguir:

Command (m for help): d

Selected partition 1 Partition 1 has been deleted.

Command (m for help): n

Partition number (1-128, default 1): First sector (34-1953525134, default 2048): 34 Last sector, +sectors or +size{K,M,G,T,P} (34-1953525134, default 1953525134):

Command (m for help): w

The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks.

Em seguida, formatei a partição:

pi@retina:~ $ sudo mkfs.ext4 /dev/sda1

mke2fs 1.42.12 (29-Aug-2014) Creating filesystem with 244190637 4k blocks and 61054976 inodes Filesystem UUID: fe042d87-3266-44b5-beff-a98f70b783ed Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 102400000, 214990848

Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done

Created a new partition 1 of type 'Linux filesystem' and of size 931.5 GiB.

finalmente ejetei a unidade:

sudo eject /dev/sda

para reconectá-lo, de forma que apareça agora na tabela de montagem.

    
por 24.12.2016 / 18:39
1

Eu também tive problemas com ext4 e o raspberry pi (3), ao tentar formatar um pendrive com

sudo mkfs.ext4 /dev/sda1

(depois de criar uma tabela gpt e uma partição linux com fdisk)

Esta foi minha mensagem de erro:

Warning, had trouble writing out superblocks.

No entanto, o FAT funcionou.

Então eu tentei formatar o pendrive com o gparted em outro pc e quando deu certo chequei o comando que o gparted estava usando e tentei formatar o usb doente com esse comando no meu pi de framboesa. Ainda demorou algum tempo (cerca de um minuto) mas funcionou.

sudo mkfs.ext4 -F -O ^64bit -L "YOUR_LABEL" /dev/sda1
    
por 08.02.2017 / 22:46
0

Você também pode usar parted para essa finalidade. Eu formatei dois discos externos com parted como ext4 e eles funcionam bem.

Antes de conectar o dispositivo, execute ls -t /dev | grep sd e execute-o novamente depois de conectar e anotar a letra do dispositivo (eu usarei sdX). Desmonte a unidade se ela estiver montada automaticamente (ela terá um número de partição quando montada):

sudo umount /dev/sdX1

Executar parted sem o número da partição como raiz:

sudo parted /dev/sdX

mklabel gpt
mkpart primary
mkpart primary ext 0% 100%
quit

E formate-o (com o número da partição):

mkfs.ext4 /dev/sdX1

Agora conecte e desconecte o dispositivo, se ele não for montado automaticamente, monte-o como root. Observe que, como o Rpi é um dispositivo de baixo consumo de energia, a porta USB não alimenta um HDD externo que não tenha uma fonte de alimentação separada.

    
por 24.12.2016 / 21:20
-1

Use o comando tune2fs para ajustar alguns parâmetros:

  1. tune2fs -m 0 /dev/sda1
  2. tune2fs -L bakap01 /dev/sda1

A opção -m é para ajustar a porcentagem de blocos reservados. Os blocos reservados são usados por processos privilegiados, que por padrão são 5% do tamanho do disco rígido. (Eu suponho) Já que você está usando o disco rígido externo apenas como um armazenamento, eu configuro isso para 0, então eu também posso usar esses 5% para armazenamento. A opção -L é para rotular o sistema de arquivos.

    
por 24.01.2014 / 07:14