找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: winpefk

[分享] 折腾小米pad6 lxc容器运行的记录

[复制链接]
 楼主| 发表于 2026-8-26 22:58:52 | 显示全部楼层
本帖最后由 winpefk 于 2026-8-26 23:10 编辑

我先祭出安卓上rootfs构建和修补的脚本
联网得等会儿...

  1. # Android chroot container builder
  2. # The script is designed for arm64 arch, you may change it for yourself
  3. # Use proot for the network access in early stage

  4. id=$(whoami)
  5. rootfs=$1
  6. unset LD_PRELOAD
  7. if [ $id != root ];then
  8. echo No Permission to get proceed.
  9. exit
  10. fi

  11. SCRIPT_PATH="$0"
  12. SCRIPT_DIR="${SCRIPT_PATH%/*}"

  13. path_set="/usr/bin/busybox env PATH=/usr/bin:/usr/sbin:/bin:/sbin"

  14. in_container="proot -r $rootfs --sysvipc -w /tmp -b /dev -b /proc -b /sys"

  15. debootstrap --include=fakeroot,busybox-static,strace --download-only --arch arm64 --variant=minbase stable $rootfs [url]https://mirrors.tuna.tsinghua.edu.cn/debian[/url]
  16. debootstrap --include=fakeroot,busybox-static,strace --arch arm64 --variant=minbase stable $rootfs [url]https://mirrors.tuna.tsinghua.edu.cn/debian[/url]

  17. echo Base rootfs has been built, performing minor fixing.

  18. $in_container -0 $path_set /usr/bin/apt reinstall passwd -y # debootstrap installed a stub addgroup program which brokes the groupadd commmand
  19. $in_container -0 $path_set /usr/bin/apt reinstall perl-base -y #de.. use l2s(link2symlink) in proot. broke the hard link.
  20. $in_container -0 $path_set /usr/bin/apt reinstall coreutils -y

  21. # here are proofs:
  22. # in debootstrap(termux version)
  23. # .../usr/share/debootstrap/scripts/debian-common                                                       #         Replace problematic binaries with a stub
  24. #         echo "" > "$TARGET/bin/chown"
  25. #         echo "" > "$TARGET/usr/sbin/groupadd"
  26. # ...

  27. $in_container -0 $path_set /usr/bin/apt clean
  28. $in_container -0 $path_set /usr/sbin/groupadd -g 3003 aid_inet
  29. $in_container -0 $path_set /usr/sbin/usermod -g aid_inet _apt
  30. $in_container -0 $path_set /usr/sbin/usermod -G aid_inet root
  31. #
  32. $in_container -0 $path_set /usr/bin/chmod 644 /etc/resolv.conf
  33. # newly found bug: chroot mode failed to set correct file permission flag
  34. # so containers running in chroot using sandbox cannot connect to the internet.

  35. # fix /tmp access
  36. $in_container -0 $path_set /usr/bin/chmod -R 777 /tmp/
  37. #
  38. # fix apt access
  39. $in_container -0 $path_set /usr/bin/chown _apt:aid_inet -R /etc/apt/
  40. #
  41. # lxc fixing
  42. cp $SCRIPT_DIR/mdev.service $rootfs/usr/lib/systemd/system/mdev.service
  43. $in_container -0 $path_set /usr/bin/ln -sf /usr/lib/systemd/system/mdev.service /etc/systemd/system/mdev.service
  44. $in_container -0 $path_set /usr/bin/chmod 640 /usr/lib/systemd/system/mdev.service
  45. $in_container -0 $path_set /usr/bin/chown root:systemd-journal /usr/lib/systemd/system/mdev.service

  46. $in_container -0 $path_set /usr/bin/ln -sf /etc/systemd/system/mdev.service /etc/systemd/system/sysinit.target.wants/mdev.service
  47. cp $SCRIPT_DIR/mdev.conf $rootfs/etc/mdev.conf
  48. $in_container -0 $path_set /usr/bin/chmod 640 /etc/mdev.conf
  49. $in_container -0 $path_set /usr/bin/chown root:root /etc/mdev.conf

  50. echo "All done!"
  51. echo "for proot container, don't use the script, use proot-distro instead."
  52. echo "If you want to build a rootfs for yourself without root access., try 'fakeroot debootstrap' instead."
复制代码


然后是同文件夹下的
mdev.conf
  1. # /etc/mdev.conf
  2. null    root:root 666
  3. zero    root:root 666
  4. random  root:root 666
  5. urandom root:root 666
  6. tty     root:tty  666
  7. console root:root 600
  8. ptmx    root:root 666
  9. full    root:root 666
复制代码

mdev.service
  1. # /etc/systemd/system/mdev.service

  2. [Unit]
  3. Description=BusyBox mdev daemon
  4. Before=sysinit.target
  5. DefaultDependencies=no
  6. ConditionPathExists=!/dev/kmsg

  7. [Service]
  8. Type=forking
  9. ExecStartPre=/bin/sh -c 'mount | grep -q " /dev/pts " || mount -t devpts devpts /dev/pts -o mode=0620,gid=5'
  10. ExecStart=/bin/busybox mdev -d
  11. Restart=always
  12. RestartSec=2

  13. [Install]
  14. WantedBy=sysinit.target
复制代码
回复

使用道具 举报

发表于 2026-8-27 21:39:34 | 显示全部楼层
winpefk 发表于 2026-8-26 07:51
可以试图看一下能不能pmOS+android dualboo

没pmOS的树(
同族设备的树wiki上面标记是不开机的状态
回复

使用道具 举报

 楼主| 发表于 7 天前 | 显示全部楼层
hzyry2046 发表于 2026-8-26 01:23
4.19(
我的主力机也是4.19,导致没法跑droidspace官方的Archlinux ARM(新版本systemd抛弃了5.10以下的 ...

没事,也就是一些高级功能缺失而已,并不会造成容器拒绝启动
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1|闽公网安备35020302032614号 )

GMT+8, 2026-9-5 23:04

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表