助けてくれてありがとう。
ホットスワップ可能なUSB C 3.1 5ベイストレージデバイスがあります(https://www.amazon.com/dp/B07VMK6ND7/ref=cm_sw_r_cp_taa_BETlFb399BQF4)Debianボックスに接続します。
2番目のベイは冗長性のための4TB RAID 1ミラーリングbtrfs、3番目のデバイスは私が交換するluks / DM-cryptバックアップドライブ、4番目のデバイスはオフサイトバックアップ用です。
このホストコントローラでは真のホットプラグを使用できません。私がしなければならないのは、削除によって2つのアクティブマウントポイントを閉じることだけです(怠惰や強制ではなく一般的な作業)。うまくいきます。私はhdparmを使ってドライブを下げ、駐車して、スリープしてから、より良いカーネルからデバイスを削除しました(このステップをスキップしても同じことが起こります)。電源ボタンを使ってデバイスの電源を切ります。その後、ドライブを取り出した。
翌日、別のドライブを再度インポートしてドライブに電源を入れ、デフォルトの2つのRAID btrfを新しいデバイスブロック(sdaからsdcなど)に再割り当てしました。その後、RAIDをマウントしようとしましたが、ファイルシステムがまだどこかにマウントされているかのように、「ファイル存在」エラーが発生しましたが、そうではありませんでした。私はsmartdにSIGHUPを送信し、カーネルからデバイスを削除してから再スキャンしましたが、役に立ちませんでした。
もちろん、再起動はすべての問題を解決しますが、Linuxがこれらの問題を処理する方法ではありません。これはカーネルのアップグレードとは異なります。 USBフラッシュドライブを交換するよりも少し進化しています。
ご意見ありがとうございました。下のBashコード。
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:32 0 3.7T 0 disk /srv/dev-disk-by-id-usb-External_USB3.0_DISK01_20170331000C3-0-1/
sdb 8:48 0 3.7T 0 disk
sdc 8:64 0 3.7T 0 disk
mmcblk0 179:0 0 29.7G 0 disk
├─mmcblk0p1 179:1 0 256M 0 part /boot
└─mmcblk0p2 179:2 0 29.5G 0 part /
# umount /dev/sda
# lsblk
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:32 0 3.7T 0 disk
sdb 8:48 0 3.7T 0 disk
sdc 8:64 0 3.7T 0 disk
mmcblk0 179:0 0 29.7G 0 disk
├─mmcblk0p1 179:1 0 256M 0 part /boot
└─mmcblk0p2 179:2 0 29.5G 0 part /
# hdparm -y /dev/sd*
... (completes without error)
# echo 1 > /sys/block/sd*/device/delete
... (completes without error)
ここでは、デバイスの電源を切り、バックアップドライブを交換してから再起動します。
# pkill -SIGHUP smartd
... (completes without error)
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdc 8:32 0 3.7T 0 disk
sdd 8:48 0 3.7T 0 disk
sde 8:64 0 3.7T 0 disk
mmcblk0 179:0 0 29.7G 0 disk
├─mmcblk0p1 179:1 0 256M 0 part /boot
└─mmcblk0p2 179:2 0 29.5G 0 part /
# mount | grep sd # no /dev/sd* mounted anywhere
cgroup2 on /sys/fs/cgroup/unified type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate)
nfsd on /proc/fs/nfsd type nfsd (rw,relatime)
# mount /dev/sdc /mnt/backup
mount: /mnt/backup: mount(2) system call failed: File exists
#
# hdparm -y /dev/sd*
... (completes without error)
# echo 1 > /sys/block/sd*/device/delete
... (completes without error)
# pkill -SIGHUP smartd
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
mmcblk0 179:0 0 29.7G 0 disk
├─mmcblk0p1 179:1 0 256M 0 part /boot
└─mmcblk0p2 179:2 0 29.5G 0 part /
# echo "- - -" > /sys/class/scsi_host/host1/scan
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdc 8:32 0 3.7T 0 disk
sdd 8:48 0 3.7T 0 disk
sde 8:64 0 3.7T 0 disk
mmcblk0 179:0 0 29.7G 0 disk
├─mmcblk0p1 179:1 0 256M 0 part /boot
└─mmcblk0p2 179:2 0 29.5G 0 part /
# mount /dev/sdc /mnt/backup
mount: /mnt/backup: mount(2) system call failed: File exists
# dmesg -T | tail -n40
[Fri Aug 7 23:39:08 2020] sd 1:0:0:2: [sde] Attached SCSI disk
[Fri Aug 7 23:39:08 2020] BTRFS warning (device sda): duplicate device fsid:devid for f4cbf27f-8fb6-48be-87a3-d42023ab2eb7:2 old:/dev/sdb new:/dev/sdd
[Fri Aug 7 23:39:08 2020] BTRFS warning (device sda): duplicate device fsid:devid for f4cbf27f-8fb6-48be-87a3-d42023ab2eb7:2 old:/dev/sdb new:/dev/sdd
[Fri Aug 7 23:39:08 2020] BTRFS warning (device sda): duplicate device fsid:devid for f4cbf27f-8fb6-48be-87a3-d42023ab2eb7:1 old:/dev/sda new:/dev/sdc
[Sat Aug 8 11:28:05 2020] BTRFS warning (device sda): duplicate device fsid:devid for f4cbf27f-8fb6-48be-87a3-d42023ab2eb7:1 old:/dev/sda new:/dev/sdc
[Sat Aug 8 18:59:57 2020] BTRFS error (device sda): bdev /dev/sdb errs: wr 1, rd 0, flush 0, corrupt 0, gen 0
[Sat Aug 8 18:59:57 2020] BTRFS error (device sda): bdev /dev/sda errs: wr 1, rd 0, flush 0, corrupt 0, gen 0
[Sat Aug 8 18:59:57 2020] BTRFS error (device sda): bdev /dev/sdb errs: wr 2, rd 0, flush 0, corrupt 0, gen 0
[Sat Aug 8 18:59:57 2020] BTRFS error (device sda): bdev /dev/sda errs: wr 2, rd 0, flush 0, corrupt 0, gen 0
[Sat Aug 8 18:59:57 2020] BTRFS error (device sda): bdev /dev/sdb errs: wr 3, rd 0, flush 0, corrupt 0, gen 0
[Sat Aug 8 18:59:57 2020] BTRFS error (device sda): bdev /dev/sda errs: wr 3, rd 0, flush 0, corrupt 0, gen 0
[Sat Aug 8 18:59:57 2020] BTRFS error (device sda): bdev /dev/sdb errs: wr 4, rd 0, flush 0, corrupt 0, gen 0
[Sat Aug 8 18:59:57 2020] BTRFS error (device sda): bdev /dev/sda errs: wr 4, rd 0, flush 0, corrupt 0, gen 0
[Sat Aug 8 18:59:57 2020] BTRFS error (device sda): bdev /dev/sdb errs: wr 5, rd 0, flush 0, corrupt 0, gen 0
[Sat Aug 8 18:59:57 2020] BTRFS error (device sda): bdev /dev/sda errs: wr 5, rd 0, flush 0, corrupt 0, gen 0
[Sat Aug 8 18:59:57 2020] BTRFS: error (device sda) in btrfs_commit_transaction:2268: errno=-5 IO failure (Error while writing out transaction)
[Sat Aug 8 18:59:57 2020] BTRFS info (device sda): forced readonly
[Sat Aug 8 18:59:57 2020] BTRFS warning (device sda): Skipping commit of aborted transaction.
[Sat Aug 8 18:59:57 2020] BTRFS: error (device sda) in cleanup_transaction:1860: errno=-5 IO failure
[Sat Aug 8 18:59:57 2020] BTRFS info (device sda): delayed_refs has NO entry
[Sun Aug 9 18:10:24 2020] usb 2-1: new SuperSpeed Gen 1 USB device number 4 using xhci_hcd
[Sun Aug 9 18:10:24 2020] usb 2-1: New USB device found, idVendor=174c, idProduct=55aa, bcdDevice= 1.00
[Sun Aug 9 18:10:24 2020] usb 2-1: New USB device strings: Mfr=2, Product=3, SerialNumber=1
[Sun Aug 9 18:10:24 2020] usb 2-1: Product: Ugreen Storage Device
[Sun Aug 9 18:10:24 2020] usb 2-1: Manufacturer: Ugreen
[Sun Aug 9 18:10:24 2020] usb 2-1: SerialNumber: 093458F298A9
[Sun Aug 9 18:10:24 2020] scsi host2: uas
[Sun Aug 9 18:10:24 2020] scsi 2:0:0:0: Direct-Access KINGSTON SA400M8120G 0 PQ: 0 ANSI: 6
[Sun Aug 9 18:10:24 2020] sd 2:0:0:0: [sdf] 234441648 512-byte logical blocks: (120 GB/112 GiB)
[Sun Aug 9 18:10:24 2020] sd 2:0:0:0: [sdf] Write Protect is off
[Sun Aug 9 18:10:24 2020] sd 2:0:0:0: [sdf] Mode Sense: 43 00 00 00
[Sun Aug 9 18:10:24 2020] sd 2:0:0:0: [sdf] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[Sun Aug 9 18:10:24 2020] sd 2:0:0:0: Attached scsi generic sg3 type 0
[Sun Aug 9 18:10:24 2020] sd 2:0:0:0: [sdf] Optimal transfer size 33553920 bytes
[Sun Aug 9 18:10:24 2020] sdf: sdf1
[Sun Aug 9 18:10:24 2020] sd 2:0:0:0: [sdf] Attached SCSI disk
[Sun Aug 9 18:20:06 2020] BTRFS warning (device sda): duplicate device fsid:devid for f4cbf27f-8fb6-48be-87a3-d42023ab2eb7:1 old:/dev/sda new:/dev/sdc
[Sun Aug 9 18:22:34 2020] BTRFS warning (device sda): duplicate device fsid:devid for f4cbf27f-8fb6-48be-87a3-d42023ab2eb7:1 old:/dev/sda new:/dev/sdc
[Sun Aug 9 18:22:55 2020] BTRFS warning (device sda): duplicate device fsid:devid for f4cbf27f-8fb6-48be-87a3-d42023ab2eb7:1 old:/dev/sda new:/dev/sdc
[Sun Aug 9 18:23:25 2020] BTRFS warning (device sda): duplicate device fsid:devid for f4cbf27f-8fb6-48be-87a3-d42023ab2eb7:1 old:/dev/sda new:/dev/sdc
追跡については、以下を参照してください。https://pastebin.com/UBhccxxY
答え1
これは、BTRFSがデバイスファイルシステム(特にUUID)に関するいくつかの情報をキャッシュするためです。 BTRFS デバイスが別のデバイスノードに表示されると、UUID がもはや必要なアイデアに合わないため、カーネルモジュールが混乱します。マウントを試みる前にこのコマンドを実行すると、btrfs device scan --forget
カーネルはすべての古いファイルシステムに関する情報を削除します。バラよりbtrfs デバイスのマニュアルページ「スキャン」サブコマンドの下。