Можно ли автоматически монтировать rootfs и chroot при загрузке? - PullRequest
0 голосов
/ 02 марта 2019

Я следую этому руководству, используя hifive unleashed board: https://wiki.debian.org/InstallingDebianOn/SiFive/HiFiveUnleashed Я успешно загрузил все и работаю, но чтобы использовать debian, я должен сделать следующее:

mount /dev/mmcblk0p2 /mnt
chroot /mnt /bin/bash -l
mount -t sysfs sysfs /sys/
mount -t proc proc /proc
mount -t devtmpfs udev /dev/
mkdir -p /dev/pts
mount -t devpts devpts /dev/pts
mount -t tmpfs tmpfs /run
mkdir -p /run/lock

Я бы хотел автоматизировать это, но в riscv linux (отсюда: https://github.com/sifive/freedom-u-sdk.git) поставляется только с busybox, поэтому я не могу выбросить это в rc.local.

Я сделал этот скрипт (называемый "S90autoroot") для добавления в /etc/init.d/

#!/bin/bash
#
# Change to debian rootfs

case "$1" in
  start)
    echo "Mounting rootfs..."
    mount /dev/mmcblk0p2 /mnt
    chroot /mnt
    mount -t sysfs sysfs /sys/
    mount -t proc proc /proc
    mount -t devtmpfs udev /dev/
    mkdir -p /dev/pts
    mount -t devpts devpts /dev/pts
    mount -t tmpfs tmpfs /run
    mkdir -p /run/lock
    ;;
  stop)
    printf "Unmounting rootfs..."
    umount /mnt
  restart|reload)
    "$0" stop
    "$0" start
    ;;
  *)
    echo "Usage: $0 (start|stop|restart)"
    exit 1
esac

exit $?

Но когда я перезагружаюсь, файл исчезает, и он фактически не запускается.

Что я делаю не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...