私はサーバーを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
また、の出力に基づいてまたはを使用してハードドライブを識別しようとしましたが、などを使用して起動するときも失敗しました。LABEL
blkid
can't find LABEL
私はsystemdを使用しません(PID 1は初期化されfile /sbin/init
実行可能ファイルを提供します)。/sbin/init --version
。SysV 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 ... || mount
systemd initrdがすでにproc、sys、およびrun(tmpfs)をインストールしているため、このコマンドが必要です。 「インストールされた」エラーではなく、正しい出力を見たいです。これはシステム化されていませんが、単純なスクリプトを使用して基本を完了できます。
答え2
今はSysVが正しく維持されていないようです。 systemdに移動し、設定を変更しなくても、ドライブが期待どおりに起動するとマウントされます。
Debian/Raspbian の FWIW では、ちょうどそうし、sudo apt-get purge sysvinit-core
自動的にlibnss-systemd
とsystemd-sysv
。