使用 Ubuntu 14.04 调整 Raspberry Pi SD 卡大小而不丢失数据

使用 Ubuntu 14.04 调整 Raspberry Pi SD 卡大小而不丢失数据

我有一张 16 GB 的微型 SD 卡,带有扩展的文件系统(因此整个空间都被占用了)。这张微型 SD 卡里面装着我的 Raspberry Pi 的 Raspbian 操作系统,还有许多未使用的可用空间。我通常使用 Windows,因此我使用 Win32diskimager 复制了我的 SDCard 以用于备份。然后我尝试将此备份写入另一张 16 GB 的微型 SD 卡,但无法写入,因为第二张卡稍小一些。因此我决定需要稍微缩小我的微型 SD 卡分区(那里有很多可用空间),以便在使用 Win32diskimager 保存后,它可以放入较小的 16 GB 微型 SD 卡中。

为此,我检查了几种解决方案,并找到了这个优秀的教程使用 Ubuntu 轻松调整和备份 Raspberry Pi SD 卡我决定照做。本教程唯一的问题是我必须使用 Ubuntu,而我对它一无所知。

尽管如此,我还是安装了 WMware 12.0.0 并决定运行 Ubuntu 虚拟机。我能找到的 Ubuntu 映像是 ubuntu-14.04.3-desktop-amd64,我还可以将存储库的副本复制到外部硬盘驱动器中(因为我的互联网连接非常慢,因为我仍在使用拨号调制解调器)。成功配置存储库以在本地运行并按照本教程操作后如何在 VM 中使用 SD 卡读卡器...为了让我的 Ubuntu VM 将微型 SD 卡视为硬盘驱动器,当我输入时,fdisk -l我看到微型 SD 卡已被识别,但它显示为两个不同的设备:

Disk /dev/sda: 15.7 GB, 15716057088 bytes
4 heads, 16 sectors/track, 479616 cylinders, total 30695424 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: 0x000cbe05

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            8192     2291015     1141412    e  W95 FAT16 (LBA)
/dev/sda2         2291016    30695423    14202204    5  Extended
/dev/sda5         2293760     2359293       32767   83  Linux
/dev/sda6         2359296     2488319       64512    c  W95 FAT32 (LBA)
/dev/sda7         2490368    30695423    14102528   83  Linux

Disk /dev/sda1: 3898 MB, 3898605568 bytes
4 heads, 16 sectors/track, 118976 cylinders, total 7614464 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: 0x000cbe05

     Device Boot      Start         End      Blocks   Id  System
/dev/sda1p1            8192     2291015     1141412    e  W95 FAT16 (LBA)
/dev/sda1p2         2291016    30695423    14202204    5  Extended
/dev/sda1p5         2293760     2359293       32767   83  Linux
/dev/sda1p6         2359296     2488319       64512    c  W95 FAT32 (LBA)
/dev/sda1p7         2490368    30695423    14102528   83  Linux

在这里,您可以看到 micro SD 卡划分的所有分区。尽管我输入了

sudo mount /dev/sda /media/usb -t auto

但后来我分析了一下,我实际上并不需要安装这些,我只需要调整它们的大小,所以我安装了 Gparted 工具来执行此操作,这是我所看到的:

我的 gparted 外观

fat32、fat16 和 ext4 分区出现红色图标,表示存在某种问题。当我右键单击 ext4 分区的信息时,它显示:

e2label: No such file or directory while trying to open /dev/sda7
Couldn't find valid filesystem superblock.

tune2fs 1.42.9 (4-Feb-2014)

tune2fs: No such file or directory while trying to open /dev/sda7
Couldn't find valid filesystem superblock.

Couldn't find valid filesystem superblock.

dumpe2fs 1.42.9 (4-Feb-2014)
dumpe2fs: No such file or directory while trying to open /dev/sda7

Unable to read the contents of this file system!
Because of this some operations may be unavailable.
The cause might be a missing software package.
The following list of software packages is required for ext4 file system support:  e2fsprogs v1.41+.

我在 Windows 中使用 chkdsk 工具检查了我的 SD 卡(如Gparted 中的警告图像),没有发现任何问题。我还检查了一下,没有缺少任何软件包

我不知道哪里出了问题,但是我无法安装该设备并且 gparted 给出如此多的错误,这告诉我出了问题。

我的问题是:

  1. 还有其他安全的方法来缩小 Pi SD 卡映像而不丢失数据吗?
  2. 是否有其他正确的方法将微型 SD 卡加载到 Ubuntu VM 中(将其作为 USB 设备连接也不起作用)?
  3. 为什么我看到 2 个设备而不是 1 个fdisk -l
  4. 我如何让 gparted 工作?

答案1

对于此答案中包含的众多链接,我提前向社区表示歉意。

  1. 为了避免丢失数据,最佳做法是備份。 尽管对于最佳方法的意见各不相同,但我建议对设备进行映像处理,以便对整个设备进行完整的位级备份(请参阅上面链接中的我的答案)。

  2. 我无法评论VMware因为我通常使用 Virtualbox 或 Bare Metal

  3. 请参阅上面的 2,话虽如此,你可能会发现这一页有用。

  4. 除了我在评论中指出的众多与 gparted 相关的答案之外,你还可能会发现本节本手册很有用。

资料来源:

30 年经验,并通过 Google 查找提供的链接。

相关内容