Thực thi tập lệnh (tại thời điểm khởi động hệ thống) trước khi gắn đĩa từ fstab


1

Tôi đang làm việc với dự án để triển khai trình điều khiển thiết bị xếp lớp, vì vậy mô-đun hạt nhân và tiện ích điều khiển của tôi (tiện ích này yêu cầu phải chạy và chạy mạng ) trước khi hệ thống kiểm tra hệ thống tệp trên thiết bị đích (trong trường hợp của tôi là / dev / sdb) và cố gắng gắn kết nó Để thực hiện nó, tôi đã viết một tập lệnh /etc/init.d/dudriver :

#!/bin/sh
# kFreeBSD do not accept scripts as interpreters, using #!/bin/sh and sourcing.
if [ true != "$INIT_D_SCRIPT_SOURCED" ] ; then
    set "$0" "$@"; INIT_D_SCRIPT_SOURCED=true . /lib/init/init-d-script
fi

### BEGIN INIT INFO
# Provides:          dudriver
# Required-Start:    $network udev mountdevsubfs
# Required-Stop:     
# Should-Start:      udev
# Should-Stop:       udev
# X-Start-Before:    checkfs mountall
# X-Stop-After:      
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: 
# Description:
### END INIT INFO



SCRIPTNAME=/etc/init.d/dudriver
. /lib/lsb/init-functions


#
# Check  a presence of the main startup script
#

#if [ -x /opt/dudriver_startup.sh ]
#then
#   /opt/dudriver_startup.sh >>/var/log/dudriver_startup.log
#fi

set -e

[ -x /opt/dudriver_startup.sh ] || exit 0


do_start()
{
    /opt/dudriver_startup.sh
}


do_stop()
{
    exit 0
}

case "$1" in
    start)
            log_begin_msg "Starting UP DUDRIVER ..."
            do_start
        stv=$?
        exit 0
            ;;
    stop)
            log_begin_msg "Shutting down DUDRIVER ..."
            do_stop
        stv=$?
        exit 0
            ;;
    restart|force-reload)
        exit 0
            ;;
    *)
            echo "Usage: $SCRIPTNAME {start|stop}" >&2
            exit 3
        ;;
esac

Vì vậy, khi hệ thống được khởi động, tôi thấy:

-- The start-up result is done.
янв 26 13:07:50 sysman mount[658]: mount: wrong fs type, bad option, bad superblock on /dev/sdb2,
янв 26 13:07:50 sysman mount[658]:        missing codepage or helper program, or other error
янв 26 13:07:50 sysman mount[658]:        In some cases useful info is found in syslog - try
янв 26 13:07:50 sysman mount[658]:        dmesg | tail or so.
янв 26 13:07:50 sysman kernel: EXT4-fs (sdb2): VFS: Can't find ext4 filesystem
янв 26 13:07:50 sysman systemd[1]: mnt-luks.mount: Mount process exited, code=exited status=32
янв 26 13:07:50 sysman systemd[1]: Failed to mount /mnt/luks.
-- Subject: Unit mnt-luks.mount has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit mnt-luks.mount has failed.
-- 
-- The result is failed.
янв 26 13:07:50 sysman systemd[1]: mnt-luks.mount: Unit entered failed state.

/ Vv / fstab:

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda1 during installation
UUID=c9e11c4a-36cb-4a53-bea5-cd430429ca1e /               ext4    errors=remount-ro 0       1

# swap was on /dev/sda5 during installation
#UUID=614198e5-236e-41fc-baa1-31b9f2230c02 none            swap    sw              0       0

/dev/sdb2 /mnt/luks ext4 defaults 0 0 

Vì vậy, câu hỏi là:

  1. tôi sai ở đâu trong sự phụ thuộc?
  2. những gì tôi cần thay đổi trong kịch bản dudriver?
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.