Названия ATA и дисков SATA в Linux

Не всегда возможно узнать наверняка, каково кодирование текстового файла. Например, последовательность байта \303\275 (c3 bd в шестнадцатеричном), мог быть ý в UTF-8, или ý в latin1, или Ă˝ в latin2, или в БОЛЬШИХ 5, и так далее.

Некоторая кодировка имеет недопустимые последовательности байта, таким образом, возможно исключить их наверняка. Это верно в особенности для UTF-8; большинство текстов в большей части 8-разрядной кодировки не является допустимым UTF-8. Можно протестировать на допустимый UTF-8 с isutf8 от moreutils или с iconv -f utf-8 -t utf-8 >/dev/null, среди других.

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

  • file
  • Perl Encode::Guess (часть стандартного распределения), пробует последовательную кодировку на строке байтов и возвращает первое кодирование, в котором строка является действительным текстом.
  • Enca является кодированием guesser и преобразователем. Можно дать ему имя языка и текст, который Вы предполагаете, находится на том языке (поддерживаемые языки являются главным образом восточноевропейскими языками), и это пытается предположить кодирование.

Если существуют метаданные (HTML/XML charset=, TEX \inputenc, emacs -*-coding-*-, …) в файле усовершенствованные редакторы как Emacs или Vim часто могут проанализировать те метаданные. Это не легко автоматизировать из командной строки все же.

12
13.04.2011, 21:11
4 ответа

В зависимости от Вашего драйвера SATA и конфигурации Вашего распределения, они могли бы обнаружиться как /dev/hda и /dev/hdb, или /dev/hda и /dev/sda, или /dev/sda и /dev/sdb. Дистрибутивы и драйверы двигают наличие всего названный жесткий диск sd?, но драйверы PATA традиционно используются hd? и несколько драйверов SATA также сделали.

Имена устройств определяются udev конфигурация. Например, на Ubuntu 10.04, следующих строках от /lib/udev/rules.d/60-persistent-storage.rules заставьте все жесткие диски ATA появиться как /dev/sd* и все CD-приводы ATA появляются как /dev/sr*:

# ATA devices with their own "ata" kernel subsystem
KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="ata", IMPORT{program}="ata_id --export $tempnode"
# ATA devices using the "scsi" subsystem
KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="scsi", ATTRS{vendor}=="ATA", IMPORT{program}="ata_id --export $tempnode"
22
27.01.2020, 19:54

Если я пойму Ваш вопрос правильно, то первый параллельный жесткий диск ATA в соответствии с Linux будет /dev/hda, второе будет /dev/hdb, сопровождаемый /dev/hdc, и т.д.

Деления Serial ATA разоблачат тот же способ, которым делают SCSI и USB-устройства: /dev/sda будет первый, сопровождаемый /dev/sdb, /dev/sdc/, и т.д.

3
27.01.2020, 19:54
  • 1
    шутки, я не думаю, что это больше верно. По крайней мере, с недавним выпуском Fedora, параллельные диски ATA получают/dev/sda и т.д. также. –  fschmitt 26.09.2010, 21:00
  • 2
    Это - то, как это находится на моей машине Ubuntu, но я не являюсь новейшим, поэтому возможно, это отличается. –  Josh 26.09.2010, 21:04
  • SATA - / dev / sdX
  • SSD - / dev / sdX
  • SCSCi - / dev / sdX
  • IDE - / dev / hda

Любой диск, который начинается с S (sata, ssd, scsci), является sda, а IDE - hda

2
27.01.2020, 19:54

В других ответах обсуждаются SATA, IDE, SCSI и т. д., но я решил добавить новый NVMe. В современных ядрах диски NVMe используют /dev/nvmeXnYдля диска и /dev/nvmeXnYpZдля разделов. Например, раздел 5 на диске NVMe (0, 1 )будет /dev/nvme0n1p5. Блочные устройства ведут себя точно так же, как приводы hdXи sdX.

По существу, параллельные соединения используют hdX, последовательные соединения используют sdX, а NVMe, чудак, использует nvmeXnY

.
1
05.05.2021, 17:48

Теги

Похожие вопросы