使用 gparted 将 128GB SD 卡格式化为 ext4

Con*_*orJ 3 partitioning ext4 sd-card

我正在尝试格式化插入到运行 Crouton 的 Toshiba Chromebook 2 上的内部 SD 卡读卡器的 SanDisk 128GB SDXC 卡。

当我使用 gparted 格式化为 ext4 时,操作永远不会完成,我必须中断操作并收到警告,指出我正在严重损坏文件系统。如果我然后尝试格式化为 FAT 32,它会给出一条错误消息。但是,当我插入卡并重新插入时,然后将其格式化为 FAT 32,它会在一分钟左右的时间内完成。

在 Ubuntu 上格式化这种大小的 SD 卡是否有任何已知问题?无论如何我可以将其格式化为ext4吗?或者它是否需要很长时间,我需要耐心等待并让手术运行(到目前为止至少已经过了十分钟并且似乎没有做任何事情)?

编辑:

这就是我试图用 SD 做的事情 - 使用 ext4 进行此类操作是否必不可少,或者 Fat32 是否可以工作?

http://ubuntuforums.org/showthread.php?t=2242850

编辑:

我尝试在 Chrome 操作系统中使用 fdisk。

我可以成功创建一个新分区,但是当我尝试使用 mkfs.ext4 时,我收到了与 gparted 相同的错误消息:

/dev/mmcblk1p1 is apparently in use by the system; will not make a filesystem here!    
Run Code Online (Sandbox Code Playgroud)

我在谷歌上搜索了错误,一切似乎都与 RAID 驱动器有关,修复程序有点超出我的想象

编辑

以下是 gparted 的完整输出

在 /dev/mmcblk1 00:00:03 ( ERROR ) 上创建主分区 #1 (ext4, 116.73 GiB)

创建空分区 00:00:02(成功)

路径:/dev/mmcblk1p1 开始:2048 结束:244809727 大小:244807680 (116.73 GiB) 在 /dev/mmcblk1p1 00:00:01 (SUCCESS) 上设置分区类型

新分区类型:ext4 创建新的 ext4 文件系统 00:00:00(错误)

mkfs.ext4 -j -O extent -L "" /dev/mmcblk1p1

mke2fs 1.42 (29-Nov-2011) /dev/mmcblk1p1 显然正在被系统使用;不会在这里创建文件系统!

编辑:

这是以下说明的输出

(precise)connor@localhost:~$ sudo umount /dev/mmcblk1
[sudo] password for connor: 
umount: /dev/mmcblk1: not mounted
(precise)connor@localhost:~$ sudo dd if=/dev/zero of=/dev/mmcblk1 bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 15.8013 s, 6.6 MB/s
(precise)connor@localhost:~$ sudo mkfs.ext4 -L "J Connor" /dev/mmcblk1
mke2fs 1.42 (29-Nov-2011)
Discarding device blocks: 4096/30601216
Run Code Online (Sandbox Code Playgroud)

系统只是停留在这一点上,不做任何事情。如果我移除 SD 卡,Chromebook 会重新启动。

编辑:

我再次尝试,这次是不同的结果(有点) - 这次我检查 Chrome OS 文件系统时,设备没有像上次那样挂载。但是,我遇到了与 gparted 相同的错误:

(precise)connor@localhost:~$ sudo umount /dev/mmcblk1
[sudo] password for connor: 
umount: /dev/mmcblk1: not mounted
(precise)connor@localhost:~$ sudo dd if=/dev/zero of=/dev/mmcblk1 bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 0.171444 s, 612 MB/s
(precise)connor@localhost:~$ sudo mkfs.ext4 -L "J Connor" /dev/mmcblk1
mke2fs 1.42 (29-Nov-2011)
/dev/mmcblk1 is apparently in use by the system; will not make a filesystem here!
(precise)connor@localhost:~$
Run Code Online (Sandbox Code Playgroud)

Bre*_*bad 5

从操作系统运行gparted 时出现问题(即不是从“实时”启动盘启动)。假设您要将整个驱动器分配给一个ext4分区。

注意:假设制作整个磁盘ext4破坏该驱动器上的所有现有数据!

尝试手动方法,做

   lsblk 
Run Code Online (Sandbox Code Playgroud)

直观判断,你的USB驱动器,即在信X/dev/sdX,和分区(S),如果有的话,N/dev/sdXN。例如。/dev/sdc, /dev/sdc1, ... 在相关的地方替换 X。

如有必要,卸载该驱动器上安装的任何内容

   sudo umount /dev/sdXN
Run Code Online (Sandbox Code Playgroud)

然后,可选地,通过在闪存(此处为 100 MB)的开头写入零,使格式化工具“相信”驱动器是空白的,从干净的地方开始。由于直接写入设备绕过了更高级别的机制,因此sync可以确保实际写入数据(不仅在缓冲区中))

   sudo dd if=/dev/zero of=/dev/sdX bs=1M count=100
   sudo sync
Run Code Online (Sandbox Code Playgroud)

拔下并在几秒钟后重新插入驱动器。lsblk将显示一个空白磁盘。

要么制作一个ext4磁盘

如果您想将整个 USB 驱动器分配给一个ext4分区,您可以简单地覆盖整个 U 盘,包括分区表

命令:

   sudo mkfs.ext4 -L "J Connor" /dev/sdX
Run Code Online (Sandbox Code Playgroud)

就是这样。(拔掉/重新插入)

或者创建一个分区设置为ext4

或者您可以先创建一个分区,可能小于 128 GB(来自“空白”磁盘)

使用 fdisk

   sudo fdisk /dev/sdX
Run Code Online (Sandbox Code Playgroud)

命令(h for help):确保没有分区

   p
Run Code Online (Sandbox Code Playgroud)

然后创建一个分区 (n)、主 (p)、部分 #1 (1) 和整个大小(第一个和最后一个扇区的默认值(或设置较小的大小,即较低的最后一个扇区号))

   n
      p
      1
      (return for first sector default)
      (return for last sector default or set smaller size)
Run Code Online (Sandbox Code Playgroud)

写入新的分区表

   w
Run Code Online (Sandbox Code Playgroud)

那叶子fdisk
注意:默认fdisk创建一个分区83(Linux)。

现在ext4在该新分区上创建文件系统

   sudo mkfs.ext4 -L "J Connor" /dev/sdX1
Run Code Online (Sandbox Code Playgroud)

尝试拔下并重新插入设备 - 它应该会自动安装。

或者手动挂载

   sudo mkdir /mnt/mydrive
   sudo mount /dev/sdX /mnt/mydrive

   sudo ls -l /mnt/mydrive

   drwxr-xr-x 3 root root  4096 Jan 31  9:28 ./
   drwxr-xr-x 6 root root  4096 May  9  2014 ../
   drwx------ 2 root root 16384 Jan 31  9:28 lost+found/
Run Code Online (Sandbox Code Playgroud)

又见这些解释有关fdisk