我根据 Build Debian from scratch 在编译rootfs这一步出错,
输入命令 RELEASE=buster TARGET=desktop ARCH=arm64 ./mk-base-debian.sh
运行一段时间后出现错误
I: Retrieving zlib1g 1:1.2.11.dfsg-1
I: Validating zlib1g 1:1.2.11.dfsg-1
P: If the following stage fails, the most likely cause of the problem is with your mirror configuration or a caching proxy.
P: Bootstrap will be foreign
/usr/sbin/debootstrap: 1450: cannot create /proj/rock3a-bsp/rootfs/ubuntu-build-service/buster-desktop-arm64/chroot/test-dev-null: Permission denied
E: Cannot install into target '/proj/rock3a-bsp/rootfs/ubuntu-build-service/buster-desktop-arm64/chroot' mounted with noexec or nodev
P: Begin unmounting filesystems...
P: Saving caches...
if [ -f binary-tar.tar.gz ]; then \
tar -jcf linaro-buster-alip-`date +%Y%m%d`-1.config.tar.bz2 auto/ config/ configure; \
sudo mv binary.contents linaro-buster-alip-`date +%Y%m%d`-1.contents; \
sudo mv chroot.packages.live linaro-buster-alip-`date +%Y%m%d`-1.packages; \
sudo mv binary-tar.tar.gz linaro-buster-alip-`date +%Y%m%d`-1.tar.gz; \
md5sum linaro-buster-alip-`date +%Y%m%d`-1.build-log.txt linaro-buster-alip-`date +%Y%m%d`-1.config.tar.bz2 linaro-buster-alip-`date +%Y%m%d`-1.contents linaro-buster-alip-`date +%Y%m%d`-1.packages linaro-buster-alip-`date +%Y%m%d`-1.tar.gz > linaro-buster-alip-`date +%Y%m%d`-1.md5sums.txt; \
sha1sum linaro-buster-alip-`date +%Y%m%d`-1.build-log.txt linaro-buster-alip-`date +%Y%m%d`-1.config.tar.bz2 linaro-buster-alip-`date +%Y%m%d`-1.contents linaro-buster-alip-`date +%Y%m%d`-1.packages linaro-buster-alip-`date +%Y%m%d`-1.tar.gz > linaro-buster-alip-`date +%Y%m%d`-1.sha1sums.txt; \
fi
我已经用root用户运行了的,而且网络也试过改用代理,都是出现这个错误。请问有没有解决办法~~
希望官方能提供一个打包好的rootfs img文件
aghost
2
看起来像是你的文件系统或者内核不支持对应的挂载操作,以下两个命令的输出能不能发一下?
lsb_release -a
uname -a
@aghost 你好` 感谢回复
lsb_release -a
uname -aNo LSB modules are available.
Distributor ID: Pop
Description: Pop!_OS 20.04 LTS
Release: 20.04
Codename: focal
uname -a
Linux ai-server 5.8.0-7642-generic #47~1612288990~20.04~b8113e7-Ubuntu SMP Wed Feb 3 02:25:36 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
sudo parted -l
磁盘 /dev/sda: 3001GB
扇区大小 (逻辑/物理):512B/4096B
分区表:loop
磁盘标志:
编号 起始点 结束点 大小 文件系统 标志
1 0.00B 3001GB 3001GB ext4
型号:ATA ST1000DM010-2EP1 (scsi)
磁盘 /dev/sdb: 1000GB
扇区大小 (逻辑/物理):512B/4096B
分区表:gpt
磁盘标志:
编号 起始点 结束点 大小 文件系统 名称 标志
1 1049kB 731GB 731GB ntfs Basic data partition msftdata
2 731GB 731GB 537MB fat32 BOOT 启动, EFI 启动
3 731GB 740GB 8389MB linux-swap(v1) 交换
4 740GB 1000GB 260GB ext4
型号:Linux 设备映射程序 (crypt) (dm)
磁盘 /dev/mapper/cryptswap: 8388MB
扇区大小 (逻辑/物理):512B/4096B
分区表:loop
磁盘标志:
编号 起始点 结束点 大小 文件系统 标志
1 0.00B 8388MB 8388MB linux-swap(v1)
型号:HP SSD EX900 120GB (nvme)
磁盘 /dev/nvme0n1: 120GB
扇区大小 (逻辑/物理):512B/512B
分区表:gpt
磁盘标志:
编号 起始点 结束点 大小 文件系统 名称 标志
1 1049kB 524MB 523MB ntfs Basic data partition 隐藏, 诊断
2 524MB 629MB 105MB fat32 EFI system partition 启动, EFI 启动
3 629MB 646MB 16.8MB Microsoft reserved partition msftres
4 646MB 83.9GB 83.2GB ntfs Basic data partition msftdata
5 83.9GB 120GB 36.1GB ntfs Basic data partition msftdata
aghost
5
看起来应该没问题,是否可以sudo -i 进入root命令行然后再一个新的目录重新完全用root用户跑一遍试试看?
sudo -i 进入root命令行然后再一个新的目录重新完全用root用户跑一遍,编译成功了!
最终出来的镜像out/system.img 有4g那么大,比官方的“rock3a_debian_buster_xfce4_arm64_20211113_0127-gpt.img”大了1个g~ 请问要怎样才能编译成和官方的镜像一样呢?
aghost
7
你去看看那个分区map文件,还有编译脚本里指定rootfs的大小的变量
er~~~
分区map文件是指?
“编译脚本里指定rootfs的大小的变量” 请问这个变量是在那里?
Stephen
9
mk-image.sh 文件里的这里指定。
# Create directories
mkdir ${MOUNTPOINT}
dd if=/dev/zero of=${ROOTFSIMAGE} bs=1M count=0 seek=4000
可修改 seek=4000 这个值。