Что означает `fd01h/64769d` в Device и`142368` в Inode?

Когда я проверил состояние файла:

[root@iz2ze9wve43n2nyuvmsfx5z ~]# stat test.py
  File: ‘test.py’
  Size: 33          Blocks: 8          IO Block: 4096   regular file
Device: fd01h/64769d    Inode: 142368      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-11-09 20:42:30.262438217 +0800
Modify: 2018-11-09 20:42:27.266329005 +0800
Change: 2018-11-09 20:42:27.269329115 +0800
 Birth: -

Что значит fd01h/64769d значит в устройстве и 142368 в иноде?

1 ответ

Решение

Прибор:

Device: fd01h/64769d сообщает, на каком устройстве находится файл, который вы изучили. Значение представляется как h exadecimal (fd01) и d ecimal (64769) число.

Теперь каждое устройство идентифицируется по его старшему и младшему номеру. Старший номер идентифицирует класс устройств, которые обычно используют один и тот же модуль драйвера / ядра, тогда как младший номер идентифицирует уникальное устройство в этом классе.

Обратите внимание, что в этом контексте "устройство" не обязательно является здесь аппаратным устройством, хотя оно включает в себя виртуальные устройства. Все в /dev фактически является устройством (за исключением каталогов и символических ссылок) и имеет старший и младший номер. Вы можете проверить их самостоятельно с ls -l /dev (сокращенный пример вывода):

drwxr-xr-x  20 root root          4560 Nov 14 00:03 ./
drwxr-xr-x  27 root root          4096 Nov  2 03:30 ../
brw-rw----   1 root disk      8,     0 Nov 14 01:06 sda
brw-rw----   1 root disk      8,     1 Nov 14 01:06 sda1
brw-rw----   1 root disk      8,     2 Nov 14 01:06 sda2
brw-rw----   1 root disk      8,     3 Nov 14 01:06 sda3
brw-rw----   1 root disk      8,    16 Nov 14 01:06 sdb
brw-rw----   1 root disk      8,    17 Nov 14 01:06 sdb1
brw-rw----   1 root disk      8,    18 Nov 14 01:06 sdb2
crw-------   1 root root     10,   224 Nov 13 15:53 tpm0
crw-------   1 root root    253, 65536 Nov 13 15:53 tpmrm0
crw-rw-rw-   1 root tty       5,     0 Nov 14 01:06 tty
crw--w----   1 root tty       4,     0 Nov 13 15:53 tty0
crw--w----   1 root tty       4,     1 Nov 13 15:53 tty1
crw-rw-rw-   1 root root      1,     5 Nov 13 15:53 zero

Четвертый и пятый столбцы здесь показывают старшие и младшие цифры. Для обычных жестких дисков старший номер равен 8, и каждый из дисков и разделов имеет свой уникальный младший номер среди них.

Теперь вернемся к вашему stat На выходе шестнадцатеричный номер устройства был fd01, Это можно разделить на два байта, fd (десятичное 253) является компонентом старшего числа и 01 (десятичное число 1) - младшее число. Мы могли бы попытаться найти главное число в этом списке, но оно классифицируется только как часть диапазона чисел для "ЗАБРОНИРОВАНО ДЛЯ ДИНАМИЧЕСКОГО НАЗНАЧЕНИЯ" и "МЕСТНОЕ / ЭКСПЕРИМЕНТАЛЬНОЕ ИСПОЛЬЗОВАНИЕ". Я бы догадался на зашифрованном или LVM томе.

Во всяком случае, вы можете использовать lsblk и проверьте, какое из перечисленных там устройств хранения соответствует этому старшему и младшему номеру. Вы увидите, что это, конечно, устройство / раздел / файловая система, в которой фактически хранится ваш проверенный файл.

Смотрите также: Номер устройства в выводе команды stat


Дескриптор:

В файловых системах Unix, таких как ext4, по умолчанию для Ubuntu, каждый объект файловой системы (например, файлы и каталоги) описывается так называемым "индексом". В основном это структура данных, которая хранит информацию о том, какие блоки на диске принадлежат объекту, а также метаданные, такие как метки времени, а также информация о владельце и разрешениях. Каждый объект имеет (как минимум) один индекс, и каждый индекс принадлежит ровно одному объекту файловой системы.

Номер, который вы видите в своем stat output - это номер или индекс inode этого файла, что позволяет вам однозначно идентифицировать файл. Например debugfs может использоваться, чтобы показать, что это число правильно соответствует файлу, который вы исследовали, выполняя поиск пути, зная только номер.

Смотрите также: Inode (Википедия)

Другие вопросы по тегам