即使我的SD卡为16GB,但我闪过的图像只有2GB,现在磁盘上只能看到2GB的存储空间。

如何调整图像大小,以便在根分区上有更多空间?

评论

谢谢..对我非常有用,没有给我的系统加油。.仍然有IRC和apache网络服务器以及我的全部8gb容量

当您可以在剩余的可用SD卡空间中创建新分区,然后将其挂载在/ mnt / storage的根分区中时,为什么要调整根分区的大小。这样可以有效地隔离系统和数据,并使维护和备份更加容易。

@mbaitoff-因为默认系统映像仅具有68MiB可用空间,所以没有太多空间来添加其他软件。

@Jules-我不是在问为什么要调整分区大小。有人问为什么要调整系统分区的大小,而不是在系统分区安装点安装额外的存储,从而有效地隔离系统和软件/数据?如果要存储,请在/ mnt / storage上安装剩余的SD spcae,如果需要程序,请在/ opt / software /上安装。

@mbaitoff大多数程序安装在/ usr,而不是/ opt / software中。预先构建的映像在根分区中具有/ usr的内容。因此,如果要安装任何非默认软件,则似乎必须增加根分区的大小。

#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