mount -aは機能しますが、起動時に「UUIDが見つかりません」のため失敗します。

mount -aは機能しますが、起動時に「UUIDが見つかりません」のため失敗します。

私はサーバーをDebian Buster(Raspbian)にアップグレードしました。ところで、今起動するとUSBハードドライブはマウントされません。ようこそ画面に次のような内容が表示されます。

mount: /media/PiHDD: can't find UUID=<string>

手動でインストールすると、sudo mount -aすべてのハードドライブがマウントされます。

以下は次のとおり/etc/fstabです

proc            /proc           proc    defaults          0       0
/dev/mmcblk0p1  /boot           vfat    defaults          0       0
/dev/mmcblk0p2  /               ext4    defaults,noatime  0       0
UUID=<string> /media/PiHDD ext4 defaults,noatime 0 0
UUID=<string2> /media/PiHDD2 ext4 defaults,noatime 0 0
...

Busterにアップデートするまではうまくいきました。

PARTUUIDまた、の出力に基づいてまたはを使用してハードドライブを識別しようとしましたが、などを使用して起動するときも失敗しました。LABELblkidcan't find LABEL

私はsystemdを使用しません(PID 1は初期化されfile /sbin/init実行可能ファイルを提供します)。/sbin/init --versionSysV init version: 2.93最新(テスト)カーネルにアップデートしました4.19.57-v7+

起動時にUSBデバイスをマウントする前に、システムがこれを見ると思いました。New USB device foundインストールが失敗する前に表示されます。Attached SCSI diskデバイスが見つかった後もこのメッセージが表示されますが、インストールが失敗した前か後であるかはわかりません。すべてがありますが、/var/log/syslog何らかの理由でmount… can't find UUID起動時に表示されるエラーはありません/var/log

システム起動時に自動的にUSBハードドライブをマウントするにはどうすればよいですか?

以下は内容です/etc/inittab

# /etc/inittab: init(8) configuration.
# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $

# The default runlevel.
id:2:initdefault:

# Boot-time system configuration/initialization script.
# This is run first except when booting in emergency (-b) mode.
si::sysinit:/etc/init.d/rcS

# What to do in single-user mode.
~~:S:wait:/sbin/sulogin

# /etc/init.d executes the S and K scripts upon change
# of runlevel.
#
# Runlevel 0 is halt.
# Runlevel 1 is single-user.
# Runlevels 2-5 are multi-user.
# Runlevel 6 is reboot.

l0:0:wait:/etc/init.d/rc 0
l1:1:wait:/etc/init.d/rc 1
l2:2:wait:/etc/init.d/rc 2
l3:3:wait:/etc/init.d/rc 3
l4:4:wait:/etc/init.d/rc 4
l5:5:wait:/etc/init.d/rc 5
l6:6:wait:/etc/init.d/rc 6
# Normally not reached, but fallthrough in case of emergency.
z6:6:respawn:/sbin/sulogin

# What to do when CTRL-ALT-DEL is pressed.
ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now

# Action on special keypress (ALT-UpArrow).
#kb::kbrequest:/bin/echo "Keyboard Request--edit /etc/inittab to let this work."

# What to do when the power fails/returns.
pf::powerwait:/etc/init.d/powerfail start
pn::powerfailnow:/etc/init.d/powerfail now
po::powerokwait:/etc/init.d/powerfail stop

# /sbin/getty invocations for the runlevels.
#
# The "id" field MUST be the same as the last
# characters of the device (after "tty").
#
# Format:
#  <id>:<runlevels>:<action>:<process>
#
# Note that on most Debian systems tty7 is used by the X Window System,
# so if you want to add more getty's go ahead but skip tty7 if you run X.
#
1:2345:respawn:/sbin/getty --noclear 38400 tty1 
2:23:respawn:/sbin/getty 38400 tty2
3:23:respawn:/sbin/getty 38400 tty3
4:23:respawn:/sbin/getty 38400 tty4
5:23:respawn:/sbin/getty 38400 tty5
6:23:respawn:/sbin/getty 38400 tty6

# Example how to put a getty on a serial line (for a terminal)
#
#T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
#T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100

# Example how to put a getty on a modem line.
#
#T3:23:respawn:/sbin/mgetty -x0 -s 57600 ttyS3


#Spawn a getty on Raspberry Pi serial line
T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

ベストアンサー1

sysvinitには、「sysinit」、「bootwait」、および「boot」(/etc/inittab経由)という3つの初期起動スクリプトがあります。ランレベルを開始する前に、デバイスの取り付けやモジュールのロードなどの作業を実行してください。

ルートがすでにインストールされている場合は、/ procが必要な最初のルートです。 /sysも可能です。

後でUUIDデバイスをインストールしてみてください。mount -aこれは、ビットを分離し、/ etc / fstabで(no)自動オプションを別々に配布する必要があることを意味します。 /proc および外部リポジトリは、実際には同じインストール手順の一部ではありません。

systemdとすべての「依存関係」を考えてみてください。

UUID-USBデバイスを取り付けるには、特定のモジュール(ドライバ)が必要です。

(initrdを使用すると、より複雑になります。「press tagged」デバイスを待っている間にどのように停止するかを知っています。)


変更するには見てください/etc/inittab。私の大使のいくつかは次のとおりです。

...
# Simple "old Linux" inittab from manpage:
# one (default) runlevel, 4 gettys, one bootwait rc-script
id:2:initdefault:

# sysinit/boot-scripts, they run first
#si::sysinit:/etc/sysinit.init 

bw::bootwait:/etc/boot.init

# b::boot:/etc/rc
...

これは/etc/boot.init("bootwait"スクリプト)です:

#! /bin/bash
# Boot script, as defined in sysv inittab

echo  "$0: starting...."

mountpoint /proc || mount -v -t proc  Proc /proc   
mountpoint /sys || mount -v -t sysfs Sys  /sys 

# root ro -> rw ?
# fed is ro, arch rw...
mount -o remount /

# Modules: for keyboard
modprobe -a xhci-pci usbhid hid-generic         # i2c-hid 

echo 0 > /sys/devices/virtual/graphics/fbcon/cursor_blink

echo "...$0 done"

sysvinitで起動するときにこれが必要です。重要な部分はキーボードモジュールです!キーボードの電源が切れると何も機能しません! procとsysをマウントするのは少し贅沢です。これら2つの仮想デバイスを手動でマウントする方法を参照してください。 /etc/fstabを使ってみましたが、あまり意味がありません。最小限のコマンドはmount -t proc none /proc

mountpoint ... || mountsystemd initrdがすでにproc、sys、およびrun(tmpfs)をインストールしているため、このコマンドが必要です。 「インストールされた」エラーではなく、正しい出力を見たいです。これはシステム化されていませんが、単純なスクリプトを使用して基本を完了できます。

おすすめ記事