единственный связывают смонтированный файл, выходит из синхронизации в Linux

Существует несколько возможных конфигураций RAID, и не всегда очевидно, где посмотреть.

Если это будет программное обеспечение Linux RAID, то это, вероятно, обнаружится в имени устройства. Если Вы работаете mount и посмотрите на устройства, которые Вы смонтировали в различных местах, Вы, вероятно, заметите записи как /dev/sdaN. Это - стандартное представление для устройств жесткого диска ATA в эти дни. С другой стороны, если Вы видите /dev/mdN, это - стандартная нотация для основанных на программном обеспечении устройств RAID-массива в соответствии с Linux.

При использовании основанного на аппаратных средствах RAID, это немного более сложно. Многие из этих устройств обнаружатся, как будто они были единственными дисковыми устройствами. Необходимо запустить с физического рассмотрения поля, чтобы видеть, включаются ли диски в RAID способное устройство. Раз так могли бы быть признаки из сообщений POST во время начальной загрузки также.

6
01.08.2012, 01:43
1 ответ

То, что происходит, - то, что vi создает новый файл (inode) и, эффективно, отменяя связывание, даже при том, что монтирование все еще на месте. Добавление использует существующий файл (inode).

Смотрите на inode числа использования файлов ls -li поскольку я ступаю через Ваш тест (тесты).

$ echo foo > foo
$ echo bar > bar
$ ls -li foo bar   # 2 inodes so 2 different files
409617 -rw-r--r-- 1 derek derek 4 Jul 31 12:56 bar
409619 -rw-r--r-- 1 derek derek 4 Jul 31 12:56 foo
$ sudo mount --bind foo bar
$ ls -li foo bar   # both inodes are the same so both reference the same file (foo)
409619 -rw-r--r-- 1 derek derek 4 Jul 31 12:56 bar
409619 -rw-r--r-- 1 derek derek 4 Jul 31 12:56 foo
$ echo mod >> foo
$ ls -li foo bar   # appending doesn't change the inode
409619 -rw-r--r-- 1 derek derek 8 Jul 31 12:57 bar
409619 -rw-r--r-- 1 derek derek 8 Jul 31 12:57 foo
$ vi foo
$ ls -li foo bar   # vi has created a new file called foo (new inode)
                   # bar still points to the old foo
409619 -rw-r--r-- 0 derek derek  8 Jul 31 12:57 bar
409620 -rw-r--r-- 1 derek derek 14 Jul 31 12:57 foo
$ sudo umount bar
$ ls -li foo bar   # umount uncovers the original bar. original foo has no references
409617 -rw-r--r-- 1 derek derek  4 Jul 31 12:56 bar
409620 -rw-r--r-- 1 derek derek 14 Jul 31 12:57 foo

Необходимо думать с точки зрения базового inodes, а не имен файлов. Что Вы пытаетесь сделать, который не мог быть сделан с символьными ссылками?


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

$ ls -li a/foo /mnt/c/foo
3842157 -rw-r--r-- 1 derek derek 17 Jul 31 19:45 a/foo
 840457 -r--r--r-- 1 root  root   6 Jul 31 19:41 /mnt/c/foo
$ sudo mount --bind a/foo /mnt/c/foo
$ ls -li a/foo /mnt/c/foo
3842157 -rw-r--r-- 1 derek derek 17 Jul 31 19:45 a/foo
3842157 -rw-r--r-- 1 derek derek 17 Jul 31 19:45 /mnt/c/foo
$ vi /mnt/c/foo
$ ls -li a/foo /mnt/c/foo
3842157 -rw-r--r-- 1 derek derek 22 Jul 31 20:02 a/foo
3842157 -rw-r--r-- 1 derek derek 22 Jul 31 20:02 /mnt/c/foo
$ sudo umount /mnt/c/foo
$ ls -li a/foo /mnt/c/foo
3842157 -rw-r--r-- 1 derek derek 22 Jul 31 20:02 a/foo
 840457 -r--r--r-- 1 root  root   6 Jul 31 19:41 /mnt/c/foo

В то время как a/foo был смонтирован на файле только для чтения /mnt/c/foo Я мог отредактировать /mnt/c/foo и это изменило содержание a/foo не изменяя inode.

8
27.01.2020, 20:27
  • 1
    StarNamer Спасибо, который объясняет это. Я действительно задаюсь вопросом, почему vi (энергия) создает новый файл (inode), когда файл уже существует? Первоначально, я использовал связывание смонтированных файлов, потому что / файловая система должна была быть смонтирована только для чтения в среде типа встроенной системы. Связывание смонтированных файлов впускает исходные нетронутые файлы / живой ниже, которые могут быть изменены. –  capnroscoe 31.07.2012, 15:29
  • 2
    Много программ работает путем чтения существующего файла, создания новой версии с временным именем, удаления связи (удаление) старого файла и переименование нового файла со старым названием. –  StarNamer 31.07.2012, 21:31
  • 3
    Посмотрите дополнительные редактирования для ответа. В основном необходимо отредактировать файл, на котором Вы смонтировали свою копию. Таким образом, если Вы делаете mount --bind /writeable/file /readonly/file затем необходимо сделать vi /readonly/file. Если Вы делаете vi /writeable/file Вы разрываете связь. –  StarNamer 31.07.2012, 22:09
  • 4

Теги

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