转载请注明出处:https://www.codelast.com/

OS:Ubuntu 14.04 LTS

树莓派的操作系统存储在一张TF卡中,如果我们要备份它,只需要简单地在Ubuntu上使用如下命令即可:

sudo dd if=/dev/sdb of=~/raspberry_pi_os_backup

其中,/dev/sdb 是我的TF卡的设备名称。这样我们就可以把TF卡备份到 raspberry_pi_os_backup 这个文件中了。

如果我们想把该备份恢复到一张新的TF卡上,也只需要在Ubuntu上使用如下命令:

sudo dd if=~/raspberry_pi_os_backup of=/dev/sdb

其中,/dev/sdb 是我的新TF卡的设备名称。这样就可以把备份的OS写到新TF卡中了。

谁都知道重新安装OS并配置好各种软件的工作量实在是太大了,而上面的方法为我们提供了一个快速复制现有的树莓派系统的途径,因此特别实用。
文章来源:https://www.codelast.com/
但是,这样做有一个问题:假设原系统是装在8G的TF卡上,而新TF卡是16G的,那么,你用上面的方法操作完之后,再把新卡插回同一个树莓派上,再用 df -h 来查看TF卡容量信息,可能会发现它竟然只有 8G!剩下的8G不知怎么就被“吃掉”了。

要解决这个“诡异”的问题,其实有一个非常方便的办法,就是在Ubuntu上使用GParted软件来调整TF卡的分区容量。二话不说下面我们就直接开始。
『1』安装GParted软件
一行命令搞定:

sudo apt-get install gparted

『2』准备工作
把新TF卡用USB适配器插到台式机上,打开GParted软件,在软件右上方的下拉框中选择你的TF卡对应的存储设备(我这里是 /dev/sdb),你会看到类似于下面这样的界面:
gparted resize tf card
在这里,我的新TF卡是16G的,而备份的树莓派OS是从8G的TF卡备份出来的,所以正如前面所说,有8G被“吃掉”了,从GParted里可以清晰地看到那被“吃掉”的8G空间,显示成了“未分配”空间。我们正是要把这部分空间,和它之前的 /dev/sdb2 分区合并成一个分区,或者说把 /dev/sdb2 分区扩大成整个TF卡的可用空间那么大。
在进一步操作GParted之前,我们需要确保TF卡上的几个分区是“卸载”的状态,因为挂载的状态是无法进行后续操作的。
卸载方法是:在除了“未分配”之外的其他所有分区上,鼠标右键点击,在弹出的菜单里,只要能看到“卸载”菜单项的,都点击“卸载”,这样就OK了。
文章来源:https://www.codelast.com/

『3』调整分区大小
右键点击 /dev/sdb2 那个分区,在弹出菜单中选择“更改大小/移动”,会弹出下面的对话框:
gparted resize tf card

通过拉动上方白框里的右箭头,我们就可以调整这个分区的大小了。我把它拉到了最右边,使得这个分区使用全部的可用空间:
gparted resize tf card
文章来源:https://www.codelast.com/
之后点击右下方的“调整大小/移动”按钮,就会回到GParted主界面了:
gparted resize tf card
此时可以看到,/dev/sdb2 的大小已经扩展到了全部可用空间,之前的“未分配”空间消失了。
但是请注意:此时分区调整实际上还没有生效,左下角的“1个操作待进行”提示了这一点。我们需要点击GParted主界面上方的勾号)来执行操作。
文章来源:https://www.codelast.com/
『4』完成操作
开始执行操作后,一般来说,你应该会看到下面这样的界面:
gparted resize tf card
但是,GParted也有可能立即报错,告诉你无法执行,此时,如果你右键点击 /dev/sdb2 并在菜单中选择“信息”,在弹出的对话框中,可能会看到类似于下面这样的信息:

e2label: No such file or directory while trying to open /dev/sdb2
Couldn't find valid filesystem superblock.
 
tune2fs 1.42.9 (4-Feb-2014)
 
tune2fs: No such file or directory while trying to open /dev/sdb2
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/sdb2
 
无法读取此文件系统上的内容!
因为此操作可能不可用。
原因可能是缺少某个软件包。
支持 ext4 文件系统需要下列软件包:e2fsprogs v1.41+。
出现这个错误的话,可能是由于操作不对造成的,并非像错误提示里写的那样缺少软件包(我的Ubuntu上就一个都不缺)——貌似刚把备份的OS恢复到TF卡上,需要重新插拔一次,才能用GParted调整分区大小。
你可以尝试着把TF卡从Ubuntu台式机上拔掉,然后再重新插入USB接口上,重做一遍试试。
文章来源:https://www.codelast.com/
如果一切可以正常进行下去,应该是类似于下面这样的界面:
gparted resize tf card

全部完成之后:
gparted resize tf card

此时,再回到GParted主界面,就会看到 /dev/sdb2 已经被成功地调整成了14G大小,并且左下方的“0个操作待进行”表明我们真的执行完了调整分区大小的操作:
gparted resize tf card
文章来源:https://www.codelast.com/
『5』在树莓派上验证新卡分区调整结果
把调整过分区的新TF卡插到树莓派上,成功进入系统!
再看一下剩余空间:

[root@alarmpi ~]# df -h ./
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        14G  5.1G  8.0G  39% /

搞定。

[原创] 在Ubuntu上使用GParted来调整树莓派TF卡的分区大小
Tagged on:                     

发表评论

电子邮件地址不会被公开。 必填项已用*标注