Що таке командний рядок "Безпечне видалення диска"?


42

Який еквівалент командного рядка функції Nautilus називається "Безпечно видалити диск". Зокрема, я виймаю флешку.


Можливо, вам
стане в

Відповіді:


39

udisksКоманда, швидше за все , то , що ви шукаєте.

Поки sudo unmount /dev/sdXYбуде працювати, udisks може це робити без дозволів кореневого рівня (sudo).

Якщо у вас встановлений накопичувач /dev/sdXY, де X - літера, що представляє ваш диск USB, а Y - номер розділу (як правило, 1), ви можете використовувати наступні команди для безпечного вилучення диска:

udisks --unmount /dev/sdXY
udisks --detach /dev/sdX

На практичному прикладі, якщо у мене встановлений розділ /dev/sdb1, я би запустив це, щоб його відключити та від'єднати:

udisks --unmount /dev/sdb1
udisks --detach /dev/sdb

Я спочатку знайшов це через це запитання: https://superuser.com/a/430470/176493 .

Використання udisks2:

У новіших дистрибутивах ubuntu (я не впевнений, коли відбувся перемикач), замість udisks встановлюється udisks2.

Дзеркальне відображення вищенаведених команд, щоб відключити та від'єднати диск за допомогою udisks2:

udisksctl unmount -b /dev/sdXY
udisksctl power-off -b /dev/sdX

Приклад, якщо мій диск /dev/sdb1:

udisksctl unmount -b /dev/sdb1
udisksctl power-off -b /dev/sdb

Я отримую, Detach failed: Not Authorizedколи намагаюся запускати його без привілеїв root. (Несерйозне питання, але невелике виправлення.)
Джонатан Ю.

Яку версію Ubuntu ви запускаєте? Також, як ви змонтували привід? Якщо ви встановили за допомогою дозволів root або коли ви ввійшли як інший користувач (на відміну від Nautilus або udisks у поточного користувача), ваш користувач не матиме дозволу вимкнути використання udisks.
даборосс

2
Так, я монтувався sudo, але я також umountредагував, перш ніж намагатися --detach. Це надійний випуск сервера ubuntu.
Джонатан Ю.

Так, може бути різниця з сервером Ubuntu тоді. Detach працює без дозволу root на моєму робочому столі.
даборосс

2
@morhook дивіться оновлену відповідь із підтримкою udisks2!
даборосс

21

Фактичний еквівалент роботи Nautilus підключення / відключення є gvfs-mount -m -d /dev/ice /some/directoryі gvfs-mount -u /some/directory. Для цього використовується той же API, який використовує Nautilus, віртуальна файлова система GIO (gvfs), яка надає різні інструменти для використання декількох сервісів як точок монтування, таких як smb, NFS, FTP, блокові пристрої тощо.

Щоб визначити, який пристрій потрібно відключити, просто скористайтеся, gvfs-mount -lякого має бути достатньо.

Це рішення має таку особливість, що воно не потребує підвищених дозволів, оскільки всім керує сервіс umount / gvfsd / polkit, що ще більше нагадує схожість з поведінкою Nautilus.


2
Це здається найбільш правильною відповіддю. Хоча багато хто з нас звикли думати про udisks(пропоновані в інших відповідях) як "спосіб" некорінних користувачів монтувати та демонтувати знімні диски на робочому столі, як зазначено тут, gvfs-mountможна використовувати інші механізми. (У моїй системі Ubuntu MATE Utopic пакет udisks навіть не встановлений.)
Eliah Kagan

1
Ubuntu 18.40 має gioзамість gvfs-mount.
студог

13

Коли ви дізнаєтесь про пристрій, можливо, використовуючи dfінформацію, як у відповіді @rcpao , найкращий спосіб "вийняти" диск - imho, використовуючи ту ж команду, що і графічний інтерфейс:

udisksctl unmount --block-device /dev/sdc1

У мене є сценарій, щоб зробити резервну копію на диск, який, як я знаю, змонтується /media/romano/movlin, і після резервного копіювання я виконую:

sync
udisksctl unmount -b $(mount | grep movlin   | cut -d" "  -f1)

Тут mount | grep movlin | cut -d" " -f1витягнемо пристрій, встановлене під міткою "movlin", (було б /dev/sdc1у такому випадку), а потім відключить його.


Чи справді потрібно вручну запускатись syncраніше udisksctl unmount?
Елія Каган

Напевно, ні. Але я цілком не впевнений у правильній поведінці кешу взагалі; Я колись відчуваю, що USB-накопичувач все ще блимає після закінчення декількох секунд ... Нехай це говорить, що це залишок старої sync; sync; sync && poweroff...
Рмано

@Rmano Я багато разів бачив миготіння на нібито відключеній флешці (зазвичай це робиться через gui під KDE) Я намагаюся почекати його, перш ніж вимкнути його. Це виглядає (на моє непідготовлене око) ніби щось не зовсім правильно. Ще гірше було б із флеш-пам’яткою без індикаторного індикатора активності.
Джо

1
Rmano, оскільки udisksв Ubuntu більше немає за замовчуванням, udisksctlможе бути кращим рішенням. udisksctl power-off --block-device /dev/sdcвимикає світло на зовнішній флеш-накопичувачі USB, тому це може бути придатним як наступна команда, що слід за вашою.
H2ONaCl

8
  1. df, щоб знайти місце кріплення вашої флешки.

    rcpao@bun:~$ df
    Filesystem                   1K-blocks       Used  Available Use% Mounted on
    /dev/mapper/ubuntu--vg-root 1916153032  658404668 1160390336  37% /
    none                                 4          0          4   0% /sys/fs/cgroup
    udev                          16438692          4   16438688   1% /dev
    tmpfs                          3289976       2156    3287820   1% /run
    none                              5120          0       5120   0% /run/lock
    none                          16449860      18768   16431092   1% /run/shm
    none                            102400         48     102352   1% /run/user
    /dev/sda1                       240972      98990     129541  44% /boot
    /dev/sdc1                     60915712      20992   60894720   1% /media/rcpao/SD024-64GB
    
  2. Відключіть, використовуючи / dev / sdc1 або / media / rcpao / SD024-64GB.

    rcpao@bun:~$ sudo umount /dev/sdc1
    [sudo] password for rcpao: 
    rcpao@bun:~$
    

    або

    rcpao@bun:~$ sudo umount /media/rcpao/SD024-64GB
    [sudo] password for rcpao: 
    rcpao@bun:~$
    
  3. Ви повинні мати змогу побачити, як піктограма викиду флешки зникає в nautilus, як тільки закінчення закінчується.


2
dfвиглядає дуже корисною для визначення місця розташування пристрою.
H2ONaCl

2
Для флешки це розумно. Для дискового накопичувача "Безпечне видалення" також викручується, що це рішення не робить (див. Відповідь DaboRoss для цього).
Нейт Елдредж

3
Так, udisks --detachкорисно для від'єднання дисків повністю після відключення.
даборосс

1
dfі umountє стандартними утилітами UNIX. Їх завжди добре знати, тому що вони завжди працюватимуть, а udisksзалежать від dbus та запущеного udisksd .
Саймон Ріхтер

1
@NateEldredge: "Для флеш-накопичувача це розумно ..." - власне, це не так, і я голосую з цієї причини: минулого року мені довелося робити розгортання програми qa і наївно використовую швидку команду по лінії з cp /path/to /drive && umount drive. Це зробило 2 флешки (тимчасово) непридатними, поки я не зрозумів, що команда викликала це. Запуск "Сканування та ремонт" на машині Windows виправив накопичувачі. Відповідь DaboRoss нижче є набагато безпечнішою.
Енді Е

2

ejectз пакету викидання :

sudo eject /dev/sdX

відображається для umountвсіх розділів, і приведіть пристрій у такий стан, що його потрібно видалити та повторно приєднати, щоб повторно встановити його.


Для кількох застосувань ця команда викидання - найкращий спосіб це зробити. Більшість інших відповідей "досить хороші", але технічно значок Eject на Nautalis не робить таких речей, як відключення пристрою. На мій досвід, витяг наближений до функціональності самої кнопки eb usb. Якщо ви хочете уникнути судо, ви можете додати себе до групи дисків (потрібно вийти з системи та увійти). Команда для цього - "Диск користувача adduser sudo"
SpiRail
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.