使用 ext4 格式化外部驱动器

Far*_*zad 5 raspberry-pi

我有一个 Raspberry PI,通过 USB 连接了一个外部 1T 硬盘。如果 USB 驱动器以 FAT 格式格式化,则工作正常,但如果我以 ext4 格式格式化驱动器,则驱动器无法正确安装,并且会出现各种错误。这就是我所做的:

fdisk -l
Run Code Online (Sandbox Code Playgroud)

结果是

Device Boot      Start         End      Blocks   Id  System
/dev/sda1               2  1953525167   976762583   83  Linux
Run Code Online (Sandbox Code Playgroud)

然后我跑

mkfs.ext4 /dev/sda1
Run Code Online (Sandbox Code Playgroud)

它运行并执行它所做的事情,没有任何错误。然后我安装驱动器

mount /dev/sda1 /mnt/external1
Run Code Online (Sandbox Code Playgroud)

这需要一点时间,但它返回时没有错误。这里发生了两件事。如果我执行 ls /mnt/external1 我会收到以下错误:

ls: reading directory /mnt/external1: Input/output error
Run Code Online (Sandbox Code Playgroud)

发生的另一件事是,如果我执行 fdisk -l 我现在会得到这个:

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               2  1953525167   976762583   83  Linux
Run Code Online (Sandbox Code Playgroud)

我的磁盘现在已移至 sdb1,如果我尝试挂载 sdb1,则会发生相同的错误,并且磁盘会重新出现在 sda1 下。

我究竟做错了什么?

这是 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
Run Code Online (Sandbox Code Playgroud)

Rac*_*hak 0

使用tune2fs命令调整一些参数:

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

-m 选项用于调整保留块的百分比。保留块由特权进程使用,默认情况下为硬盘大小的 5%。(我假设)由于您仅使用外部硬盘作为存储,因此我将其设置为 0,这样我也可以将这 5% 用于存储。-L 选项用于标记文件系统。