Существует несколько возможных конфигураций RAID, и не всегда очевидно, где посмотреть.
Если это будет программное обеспечение Linux RAID, то это, вероятно, обнаружится в имени устройства. Если Вы работаете mount
и посмотрите на устройства, которые Вы смонтировали в различных местах, Вы, вероятно, заметите записи как /dev/sdaN
. Это - стандартное представление для устройств жесткого диска ATA в эти дни. С другой стороны, если Вы видите /dev/mdN
, это - стандартная нотация для основанных на программном обеспечении устройств RAID-массива в соответствии с Linux.
При использовании основанного на аппаратных средствах RAID, это немного более сложно. Многие из этих устройств обнаружатся, как будто они были единственными дисковыми устройствами. Необходимо запустить с физического рассмотрения поля, чтобы видеть, включаются ли диски в RAID способное устройство. Раз так могли бы быть признаки из сообщений POST во время начальной загрузки также.
То, что происходит, - то, что 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.
mount --bind /writeable/file /readonly/file
затем необходимо сделатьvi /readonly/file
. Если Вы делаетеvi /writeable/file
Вы разрываете связь. – StarNamer 31.07.2012, 22:09