Linux: получить имя устройства текущего загрузочного диска

При загрузке устройства с помощью USB-накопителя,

sudo fdisk -l 

Выводит два устройства, отмеченных звездочкой, и вы никогда не узнаете, какое устройство было загружено.

Мне нужен список всех дисков, подключенных к текущему компьютеру, где

 sed -ne 's/.*\([sh]d[a-zA-Z]\+$\)/\/dev\/\1/p' /proc/partitions 

Это хороший способ, он выводит

 /dev/sda /dev/sdb 

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

 awk '$2 == "/"' /proc/self/mounts 

Это дает вам UUID-номер, но как найти /dev/sd? Принадлежащих ему?

(Подсказка о «использовании UUID» не помогает – я не хочу перенастраивать систему, я хочу ее очистить. Конечно, я могу назначить новые UUID при этом, это стоит секунды, но это определенно не Цель, и все еще не учитывает тот факт, что я не знаю, какое устройство /dev/sd? Дать новый.)

dban выполнил эту работу, но не будет использовать ее в будущем.

У вас почти есть это с вашим вызовом awk . Достаточно немного небольших настроек.

 awk '$1 ~ /^\/dev\// && $2 == "/" { print $1 }' /proc/self/mounts 

Часть $1 ~ /^\/dev\// требует, чтобы любая удовлетворяющая строка называла устройство где-то в / dev. Теперь все, что нам нужно, это сопоставление с именем UUID устройства с назначенным им именем ядра, что легко, так как все имена, перечисленные, будут либо этим именем напрямую, либо символической ссылкой (в конечном счете), указывающей на это имя, поэтому мы можем просто почувствовать ls -l к ls -l нравится так:

 ls -l $(awk '$1 ~ /^\/dev\// && $2 == "/" { print $1 }' /proc/self/mounts) 

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

  • Ограниченный трафик HTTP
  • Chown - операция не разрешена
  • Что такое сообщение «У вас есть новое письмо» в Linux / UNIX?
  • Как перечислить папки с помощью команд bash?
  • Dd aplied для dev USB перед подключением поврежденного / dev / sdX и не работает
  • Как получить размер каталога Linux или Mac OS X из командной строки?
  • Выполнение локального скрипта / команды на удаленном сервере
  • Общие сведения о разрешениях на файлы
  • Сервер OpenVPN не предоставляет доступ к Интернету
  • Клонирование только пространства, используемого с жесткого диска
  • Преобразование видео в формат, который, скорее всего, воспроизводится в системе Windows
  • Давайте будем гением компьютера.