
私は、2 つの USB ストレージ デバイスが接続された Raspberry PI で Raspbian 7.4 を実行しています。この Raspberry PI には、継続的な電源を供給するコンソール ケーブルが接続されているため、停電時でも動作し続けます。
私の問題は、自宅で停電が発生すると、Raspberry PI が USB ストレージ デバイスがなくなったことを認識し、「USB disconnect
」というメッセージが表示されるのですが、電源が回復して USB デバイスが再接続されると、新しいデバイス名が割り当てられることです。
問題は、もう存在しない以前のデバイス名でドライブが表示されることです。この時点で、マウント ポイント名を使用してドライブにアクセスしようとすると、I/O エラーが発生して失敗します。手動でドライブを再マウントする mount
必要があります。umount
/etc/fstab
デバイス名に関する問題を回避し、ドライブがマウント ポイントにマウントされる方法の一貫性を維持するために、ドライブの UUID を使用します。
代わりに、udev
ドライブの一意のシリアル番号を使用して各ドライブの SYMLINK エイリアスを作成するルールを使用し、/etc/fstab
マウントに UUID ではなくこれらのドライブ エイリアスを使用するように変更する必要がありますか?
以下の syslog には、ドライブが消えてから および として復帰した様子が示されていますsdc
。sdd
電源障害の前はsda
およびでした。sdb
もちろん、USB ドライブを小さな UPS に置くこともできますし、おそらくいずれそうするでしょうが、この種の問題に対処する最善の方法、つまり一貫した USB ディスク デバイスの命名方法を知りたいと思います。
Dec 31 06:45:46 raspberrypi kernel: [8332934.611538] smsc95xx 1-1.1:1.0 eth0: link down
Dec 31 06:45:47 raspberrypi ifplugd(eth0)[27446]: Link beat lost.
Dec 31 06:45:48 raspberrypi kernel: [8332935.871532] usb 1-1.2.3: USB disconnect, device number 47
Dec 31 06:45:48 raspberrypi kernel: [8332936.048631] usb 1-1.2.4: USB disconnect, device number 48
Dec 31 06:45:57 raspberrypi ifplugd(eth0)[27446]: Executing '/etc/ifplugd/ifplugd.action eth0 down'.
Dec 31 06:45:57 raspberrypi ifplugd(eth0)[27446]: client: /sbin/ifdown: interface eth0 not configured
Dec 31 06:45:57 raspberrypi ifplugd(eth0)[27446]: Program executed successfully.
Dec 31 06:46:22 raspberrypi kernel: [8332970.159145] usb 1-1.2.3: new high-speed USB device number 52 using dwc_otg
Dec 31 06:46:22 raspberrypi kernel: [8332970.176208] smsc95xx 1-1.1:1.0 eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
Dec 31 06:46:22 raspberrypi kernel: [8332970.261060] usb 1-1.2.3: New USB device found, idVendor=0480, idProduct=d010
Dec 31 06:46:22 raspberrypi kernel: [8332970.261096] usb 1-1.2.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Dec 31 06:46:22 raspberrypi kernel: [8332970.261111] usb 1-1.2.3: Product: External USB 3.0
Dec 31 06:46:22 raspberrypi kernel: [8332970.261128] usb 1-1.2.3: Manufacturer: TOSHIBA
Dec 31 06:46:22 raspberrypi kernel: [8332970.261142] usb 1-1.2.3: SerialNumber: 20131223xxxxxx
Dec 31 06:46:22 raspberrypi kernel: [8332970.267325] usb-storage 1-1.2.3:1.0: USB Mass Storage device detected
Dec 31 06:46:22 raspberrypi kernel: [8332970.268372] scsi16 : usb-storage 1-1.2.3:1.0
Dec 31 06:46:22 raspberrypi kernel: [8332970.509204] usb 1-1.2.4: new high-speed USB device number 53 using dwc_otg
Dec 31 06:46:22 raspberrypi kernel: [8332970.611100] usb 1-1.2.4: New USB device found, idVendor=0480, idProduct=d010
Dec 31 06:46:22 raspberrypi kernel: [8332970.611136] usb 1-1.2.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Dec 31 06:46:22 raspberrypi kernel: [8332970.611154] usb 1-1.2.4: Product: External USB 3.0
Dec 31 06:46:22 raspberrypi kernel: [8332970.611171] usb 1-1.2.4: Manufacturer: TOSHIBA
Dec 31 06:46:22 raspberrypi kernel: [8332970.611186] usb 1-1.2.4: SerialNumber: 20131223xxxxxx
Dec 31 06:46:22 raspberrypi kernel: [8332970.612810] usb-storage 1-1.2.4:1.0: USB Mass Storage device detected
Dec 31 06:46:22 raspberrypi kernel: [8332970.616236] scsi17 : usb-storage 1-1.2.4:1.0
Dec 31 06:46:23 raspberrypi ifplugd(eth0)[27446]: Link beat detected.
Dec 31 06:46:31 raspberrypi kernel: [8332979.800679] scsi 17:0:0:0: Direct-Access TOSHIBA External USB 3.0 0201 PQ: 0 ANSI: 6
Dec 31 06:46:31 raspberrypi kernel: [8332979.803181] sd 17:0:0:0: Attached scsi generic sg0 type 0
Dec 31 06:46:31 raspberrypi kernel: [8332979.804978] sd 17:0:0:0: [sdc] Very big device. Trying to use READ CAPACITY(16).
Dec 31 06:46:32 raspberrypi kernel: [8332979.828186] sd 17:0:0:0: [sdc] 732566645 4096-byte logical blocks: (3.00 TB/2.72 TiB)
Dec 31 06:46:32 raspberrypi kernel: [8332979.828999] sd 17:0:0:0: [sdc] Write Protect is off
Dec 31 06:46:32 raspberrypi kernel: [8332979.829037] sd 17:0:0:0: [sdc] Mode Sense: 2b 00 00 00
Dec 31 06:46:32 raspberrypi kernel: [8332979.831227] sd 17:0:0:0: [sdc] Write cache: disabled, read cache: enabled, doesn't sup
port DPO or FUA
Dec 31 06:46:32 raspberrypi kernel: [8332979.834218] sd 17:0:0:0: [sdc] 732566645 4096-byte logical blocks: (3.00 TB/2.72 TiB)
Dec 31 06:46:32 raspberrypi kernel: [8332979.865016] sdc: sdc1
Dec 31 06:46:32 raspberrypi kernel: [8332979.871007] sd 17:0:0:0: [sdc] 732566645 4096-byte logical blocks: (3.00 TB/2.72 TiB)
Dec 31 06:46:32 raspberrypi kernel: [8332979.872197] sd 17:0:0:0: [sdc] Attached SCSI disk
Dec 31 06:46:32 raspberrypi kernel: [8332980.064257] scsi 16:0:0:0: Direct-Access TOSHIBA External USB 3.0 0201 PQ: 0 ANSI: 6
Dec 31 06:46:32 raspberrypi kernel: [8332980.065680] sd 16:0:0:0: Attached scsi generic sg1 type 0
Dec 31 06:46:32 raspberrypi kernel: [8332980.067627] sd 16:0:0:0: [sdd] Very big device. Trying to use READ CAPACITY(16).
Dec 31 06:46:32 raspberrypi kernel: [8332980.092080] sd 16:0:0:0: [sdd] 732566645 4096-byte logical blocks: (3.00 TB/2.72 TiB)
Dec 31 06:46:32 raspberrypi kernel: [8332980.092708] sd 16:0:0:0: [sdd] Write Protect is off
答え1
Pi と電源供給されたストレージデバイスの両方が UPS に接続されていれば、問題は解決します。
これは /media の一般的な問題です。プラグを抜いてから再度差し込む (またはストレージ デバイスの電源を抜いて再度電源を入れる) 前にキャッシュをクリアしていない場合 (通常は再起動が必要)、割り当てられた名前を取得して数字を追加し始めます。
逆に、常に一定であるものが 1 つあります。(最初の) Arduino Nano への USB 接続は常に /dev/ttyUSB0 という名前になり、(最初の) Arduino Uno への USB 接続は /dev/ttyACM0 という名前になります。これらは取り外すと消えますが、再度差し込むとすぐに元に戻ります。
これらを混乱させる唯一の方法は、同じタイプ (Nano または Uno) を複数所有していて、最初とは異なる順序で再接続した場合です。
これは、Rpi 上の Arduino IDE でのみ重要です。同じタイプのものが複数ある場合、接続に使用した順序を知る以外にそれらを区別する方法がないためです。
忘れてしまった場合は、IDEを閉じてプラグを抜いてから使用してください。
ls /dev/tty*
繰り返して、差し込んだときに何が変化するかを確認します。
その後、IDE を再起動すると、使用可能なポートとして表示されます。