我确定以前有人问过这个问题,但我不知道要搜索什么
我正在尝试创建一个自定义 Linux 映像(用于 Raspberry Pi) - 我目前正在操作 .img 的文件系统,但我发现它并不像放入二进制文件那么简单:( 如果只是......
在磁盘映像上“预安装”软件包的公认方法是什么,您只能操作文件系统并且最好不要先运行它?我最好启动,安装,然后从中创建映像,还是有一种方法可以事先以与更改配置设置等相同的方式进行?
我确定以前有人问过这个问题,但我不知道要搜索什么
我正在尝试创建一个自定义 Linux 映像(用于 Raspberry Pi) - 我目前正在操作 .img 的文件系统,但我发现它并不像放入二进制文件那么简单:( 如果只是......
在磁盘映像上“预安装”软件包的公认方法是什么,您只能操作文件系统并且最好不要先运行它?我最好启动,安装,然后从中创建映像,还是有一种方法可以事先以与更改配置设置等相同的方式进行?
通常,当我必须更改磁盘映像中的某些内容时,我会执行以下操作:
sudo mount --bind /proc /mnt/disk_image/proc
sudo mount --bind /sys /mnt/disk_image/sys
sudo mount --bind /dev /mnt/disk_image/dev
需要这些操作,因为此文件夹是在启动过程中创建的,将它们安装在系统映像中将模拟完全启动。然后,您可以chroot
安全地使用它:
sudo chroot /mnt/disk_image
您现在可以在 chroot 环境中发出命令:
sudo apt-get install chromium
当然,更改/mnt/disk_image
为安装文件系统的路径。apt-get
仅适用于基于 Debian 的系统,请根据您的发行版进行更改。
您可能会发现连接到 Internet 的问题,这可能是由 DNS 配置引起的。您可以做的最好的事情是将您的/etc/resolv.conf
文件复制到远程文件系统中,因为该文件通常被更改dhcp
并且在 chroot 环境中它是空的。
这是唯一能让您完全访问您尝试修改的系统的命令行的解决方案。
这是一个未经验证的想法:
该dpkg
工具可以安装 .deb 包,有一个选项可以设置与本地路径--root
不同的文件系统。/
从手册页:
--instdir=dir
Change default installation directory which refers to the
directory where packages are to be installed. instdir is
also the directory passed to chroot(2) before running
package’s installation scripts, which means that the
scripts see instdir as a root directory. (Defaults to /)
--root=dir
Changing root changes instdir to dir and admindir to
dir/var/lib/dpkg.
如果您挂载映像并将其挂载点传递为--root
,它应该可以工作。
有像 Ubuntu Customization Kit 这样的东西,它允许您使用自己的软件包创建自己的发行版版本。
Crunchbang 甚至有一个这样的实用程序,这是我个人选择的用于试验我的 Pi 的发行版。