创建Debian系统镜像,提示chroot failed。

请教各位大佬,我在ubuntu 18.04虚拟机构建starfive2 riscv64 debian镜像时,使用sudo chroot /mnt/starfive2 /bin/bash指令,提示failed to run command ‘/bin/bash’: Exec format error。还请指点一二。

另外我使用systemd-nspawn容器启动也不行。sudo systemd-nspawn -D /mnt/starfive2/ -M kernel --bind-ro=/etc/resolv.conf
提示如下:
/mnt/starfive2/dev is pre-mounted and pre-populated. If a pre-mounted /dev is provided it needs to be an unpopulated file system.
mknod(/mnt/starfive2/dev/null) failed: File exists

这两个问题似乎都和 VF2 无关。全都是英语阅读上的问题。
1、提示是 bash 这个文件格式不正确。我估计大概率是你的虚拟机是 x86 的。你去 chroot 运行一个 riscv64 的程序,当然格式不对了。
2、提示是目标目录里面的 dev 目录已经被预挂载和预填充生成了的。也就是说这个目录里面的文件已经完整了。这自然导致第二行的错误,目标目录里面的 dev/null 这个设备,已经被建里,所以不能二次建立出来。

典型的复制粘贴教程,但是又没有完全的复制粘贴。
实际复制粘贴的命令意义是什么不知道,输出信息英文也看不懂,还不是完全 1:1 的去操作。 :face_exhaling:

2 Likes

好的,多谢大佬指点。已经解决了这个问题