アンマウントされたファイルシステムをマウントしようとすると、「ファイル存在」エラーが発生するのはなぜですか?

アンマウントされたファイルシステムをマウントしようとすると、「ファイル存在」エラーが発生するのはなぜですか?

助けてくれてありがとう。

ホットスワップ可能な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 デバイスのマニュアルページ「スキャン」サブコマンドの下。

関連情報