init 스크립트를 실행할 때 외부 저장 장치가 나열되지 않음

init 스크립트를 실행할 때 외부 저장 장치가 나열되지 않음

/dev/sda1에 마운트된 외부 드라이브를 감지하고 해당 드라이브가 있으면 마운트하는 /etc/init.d 스크립트가 있습니다. 이것은 다음 사양의 내 odroid 장치에서 잘 작동합니다.

pi@odroid64:~$ uname -a
Linux odroid64 3.14.65-73 #1 SMP PREEMPT Tue Aug 2 08:21:02 BRT 2016 aarch64 aarch64 aarch64 GNU/Linux

그러나 다음 사양으로 Raspberry Pi에서 동일한 스크립트를 실행하면 다음과 같습니다.

pi@box:~ $ uname -a
Linux box 4.4.13-v7+ #894 SMP Mon Jun 13 13:13:27 BST 2016 armv7l GNU/Linux

완료할 수 없습니다. 오류가 감지되면 스크립트에 출력하여 lsblk스크립트가 실행될 때 장치가 아직 존재하지 않음을 알 수 있습니다. 스크립트를 실행할 때의 /dev/sda출력 입니다.lsblk

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
 mmcblk0 179:0 0 7.4G 0 disk 
 ├─mmcblk0p1 179:1 0 63M 0 part /boot 
 └─mmcblk0p2 179:2 0 7.3G 0 part /

lsblk로그인했을 때 출력되는 내용입니다

NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda           8:0    0 111.8G  0 disk
└─sda1        8:1    0 111.8G  0 part
mmcblk0     179:0    0   7.4G  0 disk
├─mmcblk0p1 179:1    0    63M  0 part /boot
└─mmcblk0p2 179:2    0   7.3G  0 part /

그래서 로그인하고 실행하면

sudo /etc/init.d/usbstorage restart

예상대로 드라이브를 마운트하고 lsblk출력합니다 .

pi@camio-box:~ $ lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda           8:0    0 111.8G  0 disk
└─sda1        8:1    0 111.8G  0 part /mnt/usbstorage
mmcblk0     179:0    0   7.4G  0 disk
├─mmcblk0p1 179:1    0    63M  0 part /boot
└─mmcblk0p2 179:2    0   7.3G  0 part /

드라이브가 예상대로 설치되었습니다.

따라서 스크립트를 실행하기 전에 시스템이 외부 드라이브를 감지할 때까지 기다리지 않는 것처럼 초기화 스크립트에 잘못된 헤더가 있는 것 같습니다. 이것이 내 스크립트의 제목입니다.

#! /bin/bash
### BEGIN INIT INFO
# Provides:          usbstorage
# Required-Start:    $local_fs $remote_fs $network $named $portmap
# Required-Stop:
# Default-Start:     S
# Default-Stop:      0 6
# Short-Description: Mounts an external drive to /mnt/usbstorage for the cam process
### END INIT INFO

내가 뭘 잘못했나요?

답변1

나는 정확히 무엇이 잘못되고 있는지 파악하지 못했지만 동일한 일을 수행하는 더 쉬운 방법을 찾았습니다. 이 줄을 추가하십시오./etc/fstab

/dev/sda1 /mnt/usbstorage auto defaults,user,rw,uid=pi,gid=pi 0 0

키워드는 auto이전 스크립트에서 수행했던 장치 형식을 자동으로 감지합니다. uid 및 gid를 명시적으로 설정하면 FAT 형식의 드라이브에서도 작동합니다.

관련 정보