Как временно извлечь флешку или жесткий диск в Linux?

Предположим, я установил диск таким образом:

mount /dev/sdb /mnt/tmp 

У меня есть файлы, открытые в этой файловой системе и не хотят их размонтировать. Однако я хочу временно извлечь устройство, а затем снова подключить его. Я хочу, чтобы все чтения и записи в эту файловую систему выполнялись только в кеше или зависали до тех пор, пока я не подключу устройство.

Если бы я думал о временном отсоединении заранее, я бы использовал устройство отображения устройства:

 # ls -lh /dev/sdb brw-rw---- 1 root floppy 8, 16 Sep 12 17:38 /dev/sdb # blockdev --getsize /dev/sdb 2211840 # dmsetup create sdb_detachable --table '0 2211840 linear 8:16 0' # mount /dev/mapper/sdb_detachable /mnt/tmp (start working with the filesystem) (suddenly need to detach the device) # dmsetup suspend sdb_detachable # dmsetup load sdb_detachable --table '0 2211840 error' # blockdev --flushbufs /dev/sdb (eject the device) (maybe even use the cached part of the filesystem) (reattach the device, now it appears as /dev/sdc) # ls -lh /dev/sdc && blockdev --getsize /dev/sdc brw-rw---- 1 root floppy 8, 32 Sep 12 17:51 /dev/sdc 2211840 # dmsetup load sdb_detachable --table '0 2211840 linear 8:32 0' # dmsetup resume sdb_detachable (filesystem is usable again) (finished using it, now need to clean up) # umount /mnt/tmp/ # dmsetup remove sdb_detachable # eject /dev/sdc 

Как это можно сделать, если устройство установлено напрямую? Могу ли я «украсть» его в устройство отображения устройства?

One Solution collect form web for “Как временно извлечь флешку или жесткий диск в Linux?”

Хм, это круто. Я не знал, что dmsetup может это сделать. 🙂

Мой единственный ответ состоял в том, чтобы приостановить / спящий режим машины, вытащить флешку и выполнить манипуляцию в другом месте, а затем вернуть флешку обратно, прежде чем возобновлять работу системы.

К сожалению, файловая система на устройстве, скорее всего, будет повреждена, сделав что-нибудь подобное. Возможно, если все, что вы делаете, читается из него (и нигде на устройстве нет блоков), это может сработать.

Тем не менее, большинство флеш-устройств имеют переиздание ограничений итераций, поэтому (в некоторых устройствах) прошивка может перемещаться вокруг, когда происходит запись, даже если запись содержит одни и те же данные. Это означает, что возврат устройства к первой системе может привести к повреждению файловой системы.

Интересная проблема. 🙂

  • Почему первый дескриптор `/` смонтированного раздела и inode `/` отличается?
  • Что такое память ядра и пользовательская память? (вопрос о терминах страницы ядра и кэша страниц)
  • Сколько контроля над конкретными файловыми системами над кешем inode VFS и кешем буфера?
  • Interesting Posts
    Linux и Unix - лучшая ОС в мире.