В моем текущем проекте я вижу вывод команды mount, показывающий файлы как точки монтирования, смонтированные на tmpfs.

tmpfs on /etc/hostname type tmpfs (rw,relatime,size=52724k)
tmpfs on /etc/hosts type tmpfs (rw,relatime,size=52724k)
tmpfs on /etc/passwd type tmpfs (rw,relatime,size=52724k)
tmpfs on /etc/ntp.conf type tmpfs (rw,relatime,size=52724k)
tmpfs on /etc/resolv.conf type tmpfs (rw,relatime,size=52724k)

Согласно описанию manpage, mount принимает в качестве точки монтирования только каталог.

Я попытался смонтировать файл, как описано выше, но у меня это не работает.

root@raspberrypi:/home# file /tmp/agner
/tmp/agner: ASCII text

root@raspberrypi:/home# mount -t tmpfs tmpfs /tmp/agner
mount: mount point /tmp/agner is not a directory

Синтаксис привязки монтирования:

 mount --bind olddir newdir
 mount --rbind olddir newdir

Каталог '/tmp' уже смонтирован в tmpfs.

tmpfs on /tmp type tmpfs (rw)

Я попытался использовать следующие комбинации, но получил ошибку «fs» не существует.

root@raspberrypi:/home# mount --rbind tmpfs /tmp/agner
mount: special device tmpfs does not exist
root@raspberrypi:/home# mount --bind tmpfs /tmp/agner
mount: special device tmpfs does not exist
root@raspberrypi:/home# mount --bind /tmp/ /tmp/agner
mount: mount point /tmp/agner is not a directory

При указании опции файловой системы '-t tmpfs' появляется страница mount man.

root@raspberrypi:/home# mount -t tmpfs --bind tmpfs /tmp/agner

Итак, какая опция в команде mount требуется для этого.

2
renga_in_stack 16 Апр 2021 в 10:05
1
Это можно сделать с помощью бинда. См. unix .stackexchange.com/questions/495421/….
 – 
berndbausch
16 Апр 2021 в 09:14
Не совсем, извините, мне не удалось смонтировать файл с помощью bind mount. Я получаю только ошибки.
 – 
renga_in_stack
16 Апр 2021 в 10:16
1
Вы намеревались mount --bind /source/FILE /target/FILE ?
 – 
Archemar
16 Апр 2021 в 10:22
: помог файл mountinfo и опция привязки. Спасибо!!!
 – 
renga_in_stack
16 Апр 2021 в 11:48
- Спасибо за ваше предложение, и после нескольких экспериментов оно наконец сработало.
 – 
renga_in_stack
16 Апр 2021 в 11:48

1 ответ

Да, bind mount работает.

Я просто не понял сначала. Но изучив /proc/self/mountinfo, я лучше понял.

https://www.kernel.org/doc/Documentation/filesystems/proc.txt

shared:X Необязательное поле — это подсказка, а Mount ID, Parent ID также дает подсказку.

Существующий случай:

47 14 0:30 /hostname /etc/hostname rw,relatime shared:21 - tmpfs tmpfs rw,size=52724k
52 14 0:30 /etc/passwd /etc/passwd rw,relatime shared:21 - tmpfs tmpfs rw,size=52724k

37 34 0:30 / /DATA/var/volatile rw,relatime shared:21 - tmpfs tmpfs rw,size=52724k
36 35 0:30 / /var/volatile rw,relatime shared:21 - tmpfs tmpfs rw,size=52724k

Создал/скопировал файл в /var/volatile:

touch /var/volatile/hostname
mount --bind /var/volatile/hostname /etc/hostname
1
renga_in_stack 16 Апр 2021 в 12:14