首次启动时暂时禁用扩展文件系统


13

我想基于Raspbian Lite构建内部的Raspberry Pi映像,该映像已经配置了正确的语言环境,时区等。对我而言,不幸的是,当前版本的Raspbian映像会自动调整文件系统的大小,然后重新启动。

我想通过避免调整大小来避免文件系统小型化的麻烦。刻录后如何编辑图像,例如暂时禁用自动调整文件系统大小?

编辑以澄清影响应是可逆的;也就是说,我希望我的自定义映像在首次启动时能够扩展。


这可能不是理想的解决方案,但是您是否考虑过使用4gb的小卡,否则不会出现此类问题。
史蒂夫·罗比拉德

2
有趣的主意..烧成小卡片,有效地限制了调整大小。我希望直接解决方案,但这是一个不错的选择。谢谢
patricktokeeffe 16-10-21

2
真烦人。我非常确定这是通过一些简单的自我安装启动脚本完成的,就像raspi-config在首次启动时那样,并且很容易禁用。我可以看一下,但是我必须下载一个新图像,我上一个是5月。几个小时后再回来查看。
goldilocks

Answers:


13

在Raspbian上,有一个由两部分负责的机制。如果启用了这两个部分,最好的办法可能就是照顾这两个部分。

首先是原始文件/boot/cmdline.txt包括以下内容:

init=/usr/lib/raspi-config/init_resize.sh

引用在根分区上具有该路径的脚本,该脚本将在引导时用作初始化进程。如果没有该位,它将默认为内核中内置的值/sbin/init,在Raspbian上该值是的符号链接/lib/systemd/systemd

通过删除该部分cmdline.txt,系统应该可以正常启动。

该脚本的实际作用是调整SD卡上分区的大小。这是从调整大小的独特处理的文件系统中的分区,1是下会发生什么。

发生的方式是立即立即正常重启系统(即通过systemd),并将init.d脚本设置为尽早触发,应将其从第二个分区中删除:

/etc/init.d/resizefs_once

以及指向它的符号链接,也应将其删除:

/etc/rc3.d/S01resizefs_once

您可以保留副本,以备以后使用,但raspi-config可以再次为您创建副本(该副本嵌入在raspi-configShell脚本中)。如果它实际运行,它将删除自身,因此不会再次发生。

它还可以在新调整大小的分区中调整文件系统的大小。

如果只有其中一部分发生,则不会造成任何伤害;在第一种情况下,您最终得到的文件系统无法填充扩大的分区,在第二种情况下,则不会发生任何事情,因为文件系统已经填充了分区。

如果以后使用它raspi-config来扩大文件系统,它将立即调整分区大小,然后设置初始化脚本(如前所述)。

cmdline.txt在第一个分区上进行编辑在任何计算机上都很简单,因为它是VFAT分区。删除init.d文件需要一个可以访问和编辑ext4文件系统的系统。

可以在刻录卡之前对图像文件本身完成这两项任务;要在GNU / Linux系统上挂载和修改Raspbian映像,请参见此处Windows有一个并行的问答环节

这也是可逆的,但是您需要像刚刚描述的那样放回机制的两个部分,因为第一个不包括自动登台第二个。


  1. 尽管该脚本发出的错误消息声称可以调整根文件系统的大小失败,从而使这些术语混淆,但实际上无法做到的是保留根文件系统上的分区的大小。做一个不会自动完成另一项。

1
评论不作进一步讨论;此对话已转移至聊天
加纳玛

@ goldilock的禁用的init=/usr/lib/raspi-config/init_resize.sh/boot/cmdline.txt作品在Ubuntu队友也和所有的本身似乎不够。我有一个4gb的ubuntu mate映像,该映像已闪存到32gb的sdcard上,并将分区大小保持为原始映像大小。而且/etc/init.d/resizefs_once/etc/rc3.d/S01resizefs_once在ubuntu mate上首次启动后不存在。
sith

只是为了确认,同时还原cmdline.txtinit.drc3.d文件以及链接是否将允许下次启动自行调整其大小,还是我必须raspi-config手动运行并运行它?
Oxwivi

@Oxwivi应该,是的。我已经澄清了整个帖子,并在结尾处对此发表了明确的评论。
goldilocks

是的,谢谢。还要注意的是,IDK从哪个版本开始,但至少是最新版本,不包含您在外部提到的调整大小脚本引用cmdline.txt。我使用引导了Raspbian映像,但是systemd-nspawn在删除cmdline.txt内容后仍然遇到错误日志,尝试调整大小。
Oxwivi
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.