Почему новый каталог имеет количество жесткой ссылки 2, прежде чем что-нибудь будет добавлено к нему?

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

Что делает sudo ethtool -k wlan0 скажите Вам. Если там разгружается, можно хотеть попытаться отключить его.

Необходимо быть корнем для вызова, iptables-сохраняют. Существует все еще некоторый удаленный шанс, что что-то искажает пакеты там. Если iptables-save не работает, пробуют:

iptables -nvL
iptables -t mangle -nvL
iptables -t nat -nvL
iptables -t security -nvL

В Вашем сборе сетевых данных, делает целевое соответствие MAC-адреса тот из маршрутизатора. Что-либо интересное в сравнении от трафика UDP до трафика TCP?

Кроме того, где $dev драйвер ядра (модуль) (см. ethtool -i wlan0) для Вашего беспроводного адаптера, что делает modinfo "$dev" и grep . /sys/module/"$dev"/parameters/* скажите Вам?

38
17.11.2013, 18:30
3 ответа

Исторически, первая файловая система Unix создала две записи в каждом каталоге: . указывая на сам каталог, и .. указывая на его родителя. Это обеспечило простой способ пересечь файловую систему, и для приложений и для самой ОС.

Таким образом каждый каталог имеет число каналов 2+n, где n является количеством подкаталогов. Ссылки являются записью для того каталога в его родителе, собственный каталог . запись, и .. запись в каждом подкаталоге. Например, предположите, что это - содержание поддерева, базированного в /parent, все каталоги:

/parent
/parent/dir
/parent/dir/sub1
/parent/dir/sub2
/parent/dir/sub3

Затем dir имеет число каналов 5: dir запись в /parent, . запись в /parent/dir, и три .. записи в каждом из /parent/dir/sub1, /parent/dir/sub2 и /parent/dir/sub3. С тех пор /parent/dir/sub1 не имеет никакого подкаталога, его число каналов равняется 2 ( sub1 запись в /parent/dir и . запись в /parent/dir/sub1).

Для уменьшения объема специального преобразования регистра для корневого каталога, который не имеет “надлежащего” родителя, корневой каталог содержит a .. запись, указывающая на себя. Таким образом, это также имеет число каналов 2 плюс количество подкаталогов, при этом 2 /. и /...

Более поздние файловые системы имели тенденцию отслеживать родительские каталоги в памяти и обычно не нуждаются . и .. существовать как фактические записи; типичная современная системная обработка Unix . и .. как специальные значения как часть filesystem-type-independent кода файловой системы. Некоторые файловые системы все еще включают . и .. записи, или притворяются на то, даже при том, что ничто не появляется на диске.

Большинство файловых систем все еще сообщает о числе каналов 2+n для каталогов независимо от ли . и .. записи существуют, но существуют исключения, например, btrfs не делает этого.

39
27.01.2020, 19:36
  • 1
    .. указывание на родителя не влияет на число каналов текущего каталога. Количество 2 прибывает из . и (исходное) название каталога, перечисляющее себя. Путем Вы помещаете его, немного неоднозначно, и заставляет его походить . и .. два. .. должен использоваться только, чтобы объяснить, как математика удается к 2+n :) –  th3an0maly 21.06.2016, 19:52
  • 2
    @th3an0maly, Указывающий на родителя, влияет на число каналов родителя. Я действительно не вижу как “.. запись в каждом подкаталоге” неоднозначна, и я не понимаю то, что Вы подразумеваете “под названием каталога, перечисляющим себя”. –  Gilles 'SO- stop being evil' 21.06.2016, 20:42
  • 3
    На самом деле, этот ответ: unix.stackexchange.com/a/101516/160264 точно, на что я намекал. Считайте его после того, как я прочитал Ваш ответ, так как Ваш был тем наверху. –  th3an0maly 21.06.2016, 21:22
  • 4
    @th3an0maly я все еще понятия не имею, на что Вы намекаете. Вы могли выразить это ясно вместо вывода подсказок? –  Gilles 'SO- stop being evil' 21.06.2016, 21:42
  • 5
    является четким. То, что я означал говорить, - то, что Ваш ответ мог больше быть похожим на его. Но затем я не прочитал его ответ, когда я читал Ваш ответ. Первая строка точно что мой исходный сказанный комментарий: "Существует один для самого каталога, и один для . в нем. ". Если это все еще неясно Вам, я очень сожалею, что не могу разъясниться дальше. Все я мог добиться большего успеха, является copy+paste его ответ здесь в комментариях. –  th3an0maly 21.06.2016, 21:54

Существует один для самого каталога, и один для . в нем.

Также равно количество подкаталогов в текущем каталоге количеству жестких ссылок - 2?

Это имеет смысл, так как каждый подкаталог создает a .. hardlink, и кроме того Вы не можете создать hardlinks к каталогам 1 Однако я, would't доверяют этому для чего-либо серьезного, особенно так как легко считать подкаталоги и получить вещественное число.

Если Вы просто смотрите на ls вывод для идеи того, сколько нижние индексы там, затем это действительно дает Вам достойную идею.

1 Или по крайней мере, Вы не можете с ln. Я не попытался программно, и man 2 link неоднозначно - нет никакой очевидной ошибки для соединения с каталогом, хотя существует пара, которая могла бы применяться (EMLINK, EPERM). Таким образом, если нет некоторый стандарт где-нибудь, в котором говорится, что единственные возможные жесткие ссылки на каталог . и .., снова, я только рассматривал бы то количество жесткой ссылки как случайную подсказку.

13
27.01.2020, 19:36
  • 1
    Позволяются ли ссылки на каталоги, и можно ли считать subdirs от числа каналов, оба зависят, на которой файловой системе Вы используете - некоторые позволяют, некоторые не делают. –  alanc 17.11.2013, 21:07
  • 2
    Обратите внимание что Машина времени macOS на самом деле hardlinks каталоги к предыдущим резервным копиям; тем путем они могут притвориться, что каждое инкрементное резервное копирование является полной копией, и они могут удалить любой из incrementals, не влияя на другие. Это является также очень хрупким, я играл с ним с помощью регулярного syscalls, и я полностью полил из шланга свою файловую систему. –  w00t 10.04.2017, 17:36

Это зависит от файловой системы. BTRFS нарушает это соглашение.

# dd if=/dev/zero of=btrfs.img bs=114294784 count=1
1+0 records in
1+0 records out
114294784 bytes (114 MB, 109 MiB) copied, 0.172979 s, 661 MB/s
# mkfs.btrfs btrfs.img 
btrfs-progs v4.20.1 
See http://btrfs.wiki.kernel.org for more information.

Label:              (null)
UUID:               ad5f6c58-ec7a-41db-9d19-ec98db96d725
Node size:          16384
Sector size:        4096
Filesystem size:    109.00MiB
Block group profiles:
  Data:             single            8.00MiB
  Metadata:         DUP              32.00MiB
  System:           DUP               8.00MiB
SSD detected:       no
Incompat features:  extref, skinny-metadata
Number of devices:  1
Devices:
   ID        SIZE  PATH
    1   109.00MiB  btrfs.img
# mount btrfs.img /mnt
# mkdir -p /mnt/{1,2,3}/{1,2,3}
# find /mnt/ -links 2
# find /mnt/ -links 1
/mnt/
/mnt/1
/mnt/1/1
/mnt/1/2
/mnt/1/3
/mnt/2
/mnt/2/1
/mnt/2/2
/mnt/2/3
/mnt/3
/mnt/3/1
/mnt/3/2
/mnt/3/3

Счетчик ссылок не имеет значения для каталогов на BTRFS:

# find /mnt/ -printf '%n %p\n'
1 /mnt/
1 /mnt/1
1 /mnt/1/1
1 /mnt/1/2
1 /mnt/1/3
1 /mnt/2
1 /mnt/2/1
1 /mnt/2/2
1 /mnt/2/3
1 /mnt/3
1 /mnt/3/1
1 /mnt/3/2
1 /mnt/3/3
1
09.11.2020, 08:55

Теги

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