Вийняти / безпечно видалити vs umount


43

Я використовую Ubuntu 12.04, і коли rigth натискаю на піктограму моєї флешки (у лівій панелі Unity), я отримую два варіанти, які мене плутають: вийняти та безпечно видалити .
Чим ближче я прийшов до відповіді, це ця тема форуму , яка робить висновок, що (для флеш-пам’яті) вони є рівними, а також еквівалентними для використання umountкоманди. Однак це останнє твердження видається помилковим.
Якщо я використовую umountконсоль, щоб відключити своє флеш-дайвінг, а потім використовую команду lsblk, я все одно бачу свій пристрій (без нічого, під MOUNTPOINT, звичайно). З іншого боку, якщо я виймаю або безпечно виймаю свою флешку, lsblkбільше не вказує її.

Отже, моє запитання полягає у тому, що б це за команда / команди консолі, які б справді відтворювали поведінку викидання та безпечно видаляли ?


3
Можливо, ви зможете знайти .desktop файл під значком під /usr/share/applications/чимось подібним. Якщо ви відкриєте його в текстовому редакторі, поле Exec = ... відповідає команді, яка виконується при натисканні на неї.
spelufo

Відповіді:


64

Якщо ви використовуєте, systemdто використовуйте udisksctlутиліту з power-offопцією:

відключення живлення

Упорядкування безпечного виймання та відключення живлення накопичувача. На стороні ОС це включає забезпечення того, що жоден процес не використовує накопичувач, а потім вимагає, щоб буфери та кеші в режимі польоту були спрямовані на стабільне зберігання.

Я рекомендую спочатку відключити всі файлові системи на цьому usb. Це можна зробити і за допомогою udisksctl, тому кроки будуть:

udisksctl unmount -b /dev/sda1
udisksctl power-off -b /dev/sda

Якщо ви не використовуєте, systemdто старий товар udisksповинен працювати:

udisks --unmount /dev/sda1
udisks --detach /dev/sda

О людино - я лише зараз зрозумів, що це зробити з командного рядка - не в чому різниця між однією і іншою. Я не хочу видалити свою відповідь, тому що я думаю, що вона пропонує певну перспективу, але я вважаю, що це правильна відповідь для систем Linux, я думаю (навіть не знаю, чи це питання, яке стосується bsd у будь-якому випадку ...) .
mikeserv

4
udisksctl power-offв моєму випадку не є рівнозначним "безпечно видалити". З мікро-SD-карткою в моєму внутрішньому зчитувачі картки, пристроєм /dev/sdd, без встановлених файлових систем, коли я використовую команду udisksctl power-off -b /dev/sdd, світлодіод зчитувача вимикається, але тоді весь пристрій стає непрацездатним, я думаю, тому що він, ну, буквально повністю вимикається. Мені доведеться перезавантажити систему, щоб вона знову стала корисною.
ack

1
Для @ack: ви можете відключити / включити (можливо, внутрішній) концентратор, де підключений зчитувач. Оскільки це концентратор, він також випаде, а потім перерахує все, включаючи відсутній пристрій. Сподіваємось, ви можете прочитати цей приклад: udisksctl power-off -b /dev/mmcblk0mmc0: карта aaaa видалена usb 3-1.8: відключення USB, номер пристрою 41 cd /sys/bus/usb/devices/usb3/3-1 echo 0 > authorized echo 1 > authorizedконцентратор 3-1: 1.0: концентратор USB знайдений usb 3-1: дозволено підключити usb 3-1.8: знайдено новий USB-пристрій , idVendor = 0bda, idProduct = 0129 mmc0: нова надшвидкісна SDR50 SDHC карта за адресою aaaa
AB

14

umountє абсолютно безпечним для диска. Після того, як ви успішно відключили файлову систему, вам не потрібно хвилюватися. Основна відмінність між вийманням і umountзовсім не стосується диска - скоріше, це стосується вихідної потужності 5В на порту USB.

Після umountтого, як ви все ще можете побачити ваш диск, вказаний у списку, lsblkоскільки він все ще включений та приєднаний. umountфайлова система внутрішнього жорсткого диска, і ви побачите ту саму поведінку з тієї ж причини. Але коли ви виймаєте USB-пристрій, ви вимикаєте його, і він перестає витягувати 5 В, як правило - я думаю, що він зводиться до .5В, але цей клас трапився давно.

lsblk -f /dev/disk/by-id/usb-SanDisk_Cruzer_200522428118F4325EC2-0:0
NAME   FSTYPE LABEL   UUID                                 MOUNTPOINT
sdd                                                        
├─sdd1 vfat   USBESP  3AD6-C7CC                            
└─sdd2 ext4   USBROOT 5afbfe93-6955-44ec-8c4f-cf381f8ef174 

Ось його шлях до usb bus ...

cat /sys/bus/usb/devices/5-3/manufacturer 
SanDisk

Незважаючи на те, що я майже ніколи не монтую його, він підключається і блимає давно, я думаю ...

cat /sys/bus/usb/devices/5-3/power/{level,connected_duration}
on
1777877440

Я повинен зробити щось з цього приводу:

echo 1 | sudo tee /sys/bus/usb/devices/5-3/remove                                      

Тепер я ще раз погляну на це ...

cat /sys/bus/usb/devices/5-3/power/level                            
cat: /sys/bus/usb/devices/5-3/power/level: No such file or directory

Гммм ...

lsblk -f /dev/disk/by-id/usb-SanDisk_Cruzer_200522428118F4325EC2-0:0
lsblk: /dev/disk/by-id/usb-SanDisk_Cruzer_200522428118F4325EC2-0:0: not a block device

1
Дякую. Після того, як umountзовнішній жорсткий диск, можна безпечно видалити зовнішній жорсткий диск від комп'ютера?
Тім

1
Я не думаю, що umountце еквівалентно "безпечно видалити", і жоден з них udisksctl power-off, будь ласка, дивіться мій коментар до іншої відповіді. Порівняйте, наприклад, поведінку в Windows. Я здогадуюсь, що Windows робить трохи більше, ніж просто «відключає» файлові системи на пристрої. Я спостерігав, як він вивертає зовнішні жорсткі диски, вимикаючи світлодіоди на зчитувачах карт ( не надаючи згодом пристрій непридатним для використання, якщо не підключено або перезавантажено систему) тощо.
ack

2
@ack - що стосується Windows? і чому ти здогадуєшся? і вам не доведеться перезавантажувати його, щоб знову стати в нагоді. ти umountце. то ви вимкнете це. і я ніколи нічого не пропонував щодо udiskctlтого чи іншого шляху.
mikeserv

1
@mikeserv "Безпечне видалення обладнання" - це вираз, який використовується в Windows. Цілком ймовірно, що інші системи скопіювали цю фразу через ознайомлення користувачів. Важливо відрізнити її від простої демонстрації файлової системи. Приклад, коли це має велике значення, - це коли ОС не впевнена в кешуванні запису пристрою зберігання. Я особисто зазнав досить значної втрати даних (пошкоджений суперблок та файли) після простого відключення та відключення зовнішнього жорсткого диска. Пізніше я дізнався, що Linux попередив про це: "Сторінку режиму кешування не знайдено", "Припустимо кеш диска: записувати через".
ак

1
@ack - ні, це не важливо. ваша проблема, ймовірно, ваш acpi. це не має нічого спільного з операційною системою - лише те, що ваш виробник плати написав драйвери лише для одного ОС. ці маленькі пристрої з багатьма картками потребують досить низького доступу до цілі картки - вони повинні мати змогу робити такі речі, як очна фантастика. вони не блокують пристрої - вони персонажні пристрої. вони зовсім не схожі на диски usb. дошка-rom повинна обробляти їх окремо, і якщо ваш постачальник погано підтримує це (що не є незвичайним - спробуйте завантажуватися з одного), вам не пощастило. але це не проблема Linux.
mikeserv
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.