如何调整图像大小,以便在根分区上有更多空间?
#1 楼
假设您正在使用Debian。简短版本:
备份系统
删除主分区和交换分区(不包含启动分区)
重新创建主分区以利用剩余的磁盘空间(引导分区除外)。确保重新使用与原始根分区相同的启动扇区。
重新引导系统
调整新的引导根分区的大小以利用完整的分区大小。
分步说明
首先使用此处的说明备份SD卡,以防出现问题。
从命令行或终端窗口输入以下内容
sudo fdisk /dev/mmcblk0
,然后键入
p
列出分区表您应该看到三个分区。如果您在标记为System的最后一列中查看,则应该具有
W95 FAT32
Linux
Linux交换
分区2的起始编号,您稍后需要。尽管它可能仍会显示在屏幕上(以防万一)。
下一步键入
d
删除分区。然后将提示您输入要删除的分区号。在上述情况下,您要同时删除Linux和Linux交换分区。
因此请键入
2
,然后再次键入
d
,然后键入3
删除交换分区。 br /> 现在您可以调整主分区的大小。
键入
n
来创建一个新分区。此新分区必须是主分区,因此键入
p
。然后在出现提示时输入
2
输入分区号。现在将提示您输入新分区的第一个扇区。
输入上一步中的开始编号(Linux分区)
接下来,系统将提示您输入最后一个扇区,您只需按Enter即可接受将利用剩余磁盘空间的默认扇区。
键入
w
保存所做的更改。接下来,使用以下命令重新引导系统:您回到命令行输入以下命令:
sudo reboot
注意:这可能需要很长时间(取决于卡的大小和速度),请耐心等待完成操作,这样您就不会弄乱文件系统,而必须从头开始。
完成后,请使用以下命令重新引导系统:输入以下命令即可插入SD卡:
sudo resize2fs /dev/mmcblk0p2
为什么起作用:分区,然后在将数据写入磁盘之前仅重新创建根分区(使用原始启动扇区)。因此,您不会从根分区中删除现有数据。
通过删除交换分区,您可以使根分区空间超出其当前大小,并填充磁盘的未使用部分(由于分区的位置-根分区夹在引导之间)和交换分区-不能简单地调整大小而不能单独保留交换分区)。
然后调整文件系统的大小(可以在已安装的磁盘上安全运行)以使用新的根分区中的所有空间。
ref:
http://www.youtube.com/watch?v=R4VovMDnsIE
http://www.raspberrypi.org/phpBB3/viewtopic.php?f=5&t=5584
评论
@Jivings如果正确完成,您不会丢失任何东西,但这是我进行第一步备份的原因。
–史蒂夫·罗比拉德(Steve Robillard)
2012年6月19日上午10:43
从评论中看来,您似乎也应该记录下这样做的原因,而不仅仅是工作原理。
–活动
2012年6月19日在10:51
@Jivings希望能解决您的问题。
–史蒂夫·罗比拉德(Steve Robillard)
2012年6月19日在11:24
必须删除分区以调整其大小似乎是非常错误的。
–亚历克斯·张伯伦
2012年6月19日14:08
@AwesomeUser您不在Mac上执行此操作,而是在pi本身上执行此操作。另外,如果您正在运行raspbian,则可以启动pi,然后从命令行发出以下命令sudo raspi-config,然后选择resize root partition选项。
–史蒂夫·罗比拉德(Steve Robillard)
2014-2-28的3:47
#2 楼
使用Debian-Wheezy Beta映像,内置了一个配置实用程序,可简化此操作:有一个名为
raspi-config
的实用程序。如果您直接连接到RPi,它将在首次启动时运行。如果您使用的是SSH,则可以使用$ sudo raspi-config
手动运行它。 (我认为您可以随时手动重新运行该工具。)紧随其后的蓝色对话框中的第二个选项名为expand_rootfs
,其描述为“扩展根分区以填充SD卡”。 选择此选项将在下次启动RPi时调整根分区的大小,以填满卡。
2015年更新!在返回此答案时,我要格外小心:我一直在使用一堆16GB SD卡,并且由于最大化分区来填充正在使用的卡而陷入困境。这样做会导致切换到新卡(即使据说为16GB)比旧卡小200MB左右的问题。
当我将几个RPis从v1切换到使用Micro SD卡的新v2型号时,这个问题浮出水面。
我现在可以腾出大约1GB的空间绝对确保可以在SD卡之间切换我的图像而不会出现问题。
评论
使用我的Pi上的16 GB卡,此过程大约花费了10分钟。
–霍斯特斯塔普勒(Der Hochstapler)
13年1月28日在12:57
这比最简单的答案要简单得多。这是要使用的解决方案。
–詹姆斯撇取
13年5月10日在21:14
@JamesSkimming:这是用于Debian-Wheezy Beta图像的解决方案。不适合其他人。
– SF。
13年8月2日在22:53
当从NOOBS安装在SDCard上时,这对于Raspbian不起作用,因为它们随RPi套件一起提供。当您尝试运行expand选项时,它说该配置不支持该选项,但是由于您正在运行的菜鸟,无论如何它可能会占用所有空间...问题是我试图将8GB映像刷新到32GB卡
–埃因·坎贝尔
13年12月28日在19:31
您如何留下1GB的可用空间?或您如何/在哪里指定扩展分区大小的大小?
–user2813274
18年11月12日在2:32
#3 楼
如果您在命令行上不太舒服,例如在Steve Robillards的出色回答中,可以使用一些GUI应用程序。特别是gparted效果很好。我认为它默认安装在Ubuntu LiveCD上,而不安装在已安装的系统上。当然,有一个简单的解决方法:
apt-get install gparted
。您无法在实际的Pi上执行此操作,因为要调整分区的大小,需要将其卸载。它很容易使用。这是默认的debian映像在8gb sdcard上的布局。右键单击要卸载的分区,然后右键单击以调整大小或移动分区。您还可以创建新分区并格式化现有分区。在下面的图片中,我已经删除了交换分区,现在可以将根分区的大小调整为它右边的整个空间。不要完全填满它,因为您仍然必须添加交换分区。
您可以使用分区布局,仅当您应用更改(第一张图片中的“ return”键显示为灰色)。
移动分区非常容易,但是就像在Steve的回答中一样,我建议您完全删除交换分区,然后调整根的大小并然后重新创建交换。移动分区可能需要很长时间,并且交换不包含您需要保留的数据。
评论
我用过这种方法;奇迹般有效。
–亚历克斯·张伯伦
2012年7月4日在11:11
我同意。我已经用gparted做到了这一点,而且非常容易
–JayDev
15年1月16日在11:43
如果通过VNC连接,请运行sudo -E gparted
– forzagreen
17年7月3日在16:37
如果您在Wayland下运行(不确定是否已解决这些问题),则可能还需要在gparted之前运行以下命令:xhost + SI:localuser:root
– John Manko
19 Mar 15 '19在0:14
#4 楼
如果您使用更新的Debian Wheezy映像:http://www.raspberrypi.org/archives/1435
启动时脚本允许您调整大小以自动填充sdcard。
评论
我正在使用Arch Linux。
–活动
2012年6月20日17:50
怎么会这样呢?
–user46
2012年6月20日17:57
这是为任何最新的Wheezy映像调整分区大小的最简单方法。
–尤瓦尔·亚当
2012年11月27日10:47
#5 楼
我观看了此视频,它非常适合我(我有16GB的存储卡):http://www.youtube.com/watch?v=R4VovMDnsIE&feature=plcp
评论
-1如果链接腐烂,答案应该能够独立存在。
–活动
2012年6月21日18:09
评论
谢谢..对我非常有用,没有给我的系统加油。.仍然有IRC和apache网络服务器以及我的全部8gb容量当您可以在剩余的可用SD卡空间中创建新分区,然后将其挂载在/ mnt / storage的根分区中时,为什么要调整根分区的大小。这样可以有效地隔离系统和数据,并使维护和备份更加容易。
@mbaitoff-因为默认系统映像仅具有68MiB可用空间,所以没有太多空间来添加其他软件。
@Jules-我不是在问为什么要调整分区大小。有人问为什么要调整系统分区的大小,而不是在系统分区安装点安装额外的存储,从而有效地隔离系统和软件/数据?如果要存储,请在/ mnt / storage上安装剩余的SD spcae,如果需要程序,请在/ opt / software /上安装。
@mbaitoff大多数程序安装在/ usr,而不是/ opt / software中。预先构建的映像在根分区中具有/ usr的内容。因此,如果要安装任何非默认软件,则似乎必须增加根分区的大小。