URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 8332
[ Назад ]

Исходное сообщение
"Определение типа файла устройства"

Отправлено Niki , 30-Июн-09 10:23 
Вопрос такой. Как определить какой файл устройств из каталога /dev/ относиться к жесткому диску, а какой к флешке или CD? На разных компах жесткий определяется по разному, то как hda то как sda.

Содержание

Сообщения в этом обсуждении
"Определение типа файла устройства"
Отправлено badgopher , 30-Июн-09 11:35 
>Вопрос такой. Как определить какой файл устройств из каталога /dev/ относиться к
>жесткому диску, а какой к флешке или CD? На разных компах
>жесткий определяется по разному, то как hda то как sda.

Тебе поможет find -l. Оно выдает много интересной инфы. В том числе и disk identifier. Ниже представлен скрипт, который ищет нужный файл в /dev. Скрипт должен запускаться с правами рута. Значение переменной SAVED_DISK_NO замени на disk identifier своего диска.

------cut----------
#!/usr/bin/env bash

SAVED_DISK_NO="0x0002059a"
for DISK_NAME in `find /dev -type b`
do
  echo "Processing $DISK_NAME..."
  DISK_NO=`fdisk -l $DISK_NAME 2> /dev/null | grep "Disk identifier" | awk '{print $3}'`
  if [ x"$DISK_NO" == x"$SAVED_DISK_NO" ]; then
    echo "Found $DISK_NAME"
    break
  fi
done
-----end cut---------


"Определение типа файла устройства"
Отправлено badgopher , 30-Июн-09 11:52 
Если тебя интересует вопрос как различить любой CD, хард или флешку, то тут может помочь fdisk -l  с грепом типа файловой системы. Конечно, различить флешку от харда тяжелее, но тут можно дополнительно воспользоваться выводом dmesg.



"Определение типа файла устройства"
Отправлено Niki , 30-Июн-09 12:57 
Меня интересует как отличить неразбитый и не форматированный винт от cd и флешки. Соответственно на нем вообще не будит никакой файловой системы.



"Определение типа файла устройства"
Отправлено badgopher , 30-Июн-09 13:01 
>Меня интересует как отличить неразбитый и не форматированный винт от cd и
>флешки. Соответственно на нем вообще не будит никакой файловой системы.

Ну тогда find'ом по блочным устройствам и найти то устройство у которого не будет партишенов. Тот же fdisk -l  должен помочь.



"Определение типа файла устройства"
Отправлено gaa , 30-Июн-09 14:59 
>Меня интересует как отличить неразбитый и не форматированный винт от cd и
>флешки. Соответственно на нем вообще не будит никакой файловой системы.

у cd и флешки общее то, что у них в /sys/block/${drive}/removable записано 1. Соответственно, у жёсткого диска там будет 0.

Верно для Linux, как для других ОСей различить я не знаю, м.б. также.