2011-01-12 2 views
4

У меня проблема с номером inode. Когда я монтирую один USB-диск (скажем, usb-a), а затем монтируем другой USB-диск (usb-b), номер inode в usb-a изменяется.Inode Number меняется

Это нормально? что может вызвать эту проблему? Я использую Linux-ядро 2.6. usb-a - это vfat, а usb-b - ntfs.

Спасибо заранее, ребята.

+0

Вы имеете в виду номера inode, которые не являются постоянными по сравнению с перезагрузкой системы? – shahir

ответ

6

Файловые системы FAT (и аналогичные VFAT) фактически не хранят номера inode на диске. Вместо этого Linux изобретает inode номера «на лету» для файлов, как они видны. Эти генерируемые номера inode хранятся в кеше, чтобы попытаться сохранить их согласованными, но этот кеш имеет фиксированный размер; как только он будет заполнен, старые записи будут выброшены.

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

Дополнительная информация:

  • Discussion об ошибке, связанной с этой проблемой на Findutils рассылки списка
  • Linux Исходники ядра: fs/fat/inode.c (в частности, призыв к iunique в fat_build_inode, который выполняет распределение числа инода).
Смежные вопросы