Назад | Перейти на главную страницу

Как увидеть olddir после mount --bind olddir newdir?

В моем debian 7:

$ pwd
/home/freestyler

$ mkdir old new
# mount --bind old new

затем

$ mount
/dev/cciss/c0d0p9 on /home/freestyler/new type ext4(rw,noatime,nodiratime,user_xattr,barrier=1,data=ordered)

Я могу видеть только /dev/cciss/c0d0p9, что не то же самое, что /home/freestyler/old

Как мне получить исходный путь olddir?

В debian 6:

в mount хорошо обойти путь olddir:

 $ mount

/home/freestyler/old on /home/freestyler/new type none (rw,bind)

Это ошибка, у меня нет ответа для тебя, но вот отчет об ошибке:

mount: привязать крепления, не показанные как таковые в выходных данных mount

Мне было действительно любопытно, как это обойтись, поэтому я взял live cd debian 7 и начал экспериментировать. В конце концов я дошел до этого поста:

Обратите внимание, что / etc / mtab здесь полезен, только если это текстовый файл, поддерживаемый функцией mount. Некоторые дистрибутивы вместо этого устанавливают / etc / mtab как символическую ссылку на / proc / mounts; / proc / mounts в основном эквивалентен / etc / mtab, но имеет несколько отличий, одно из которых не отслеживает монтирование привязки.

Одна часть информации, которая сохраняется ядром, но не отображается в / proc / mounts, - это когда точка монтирования показывает только часть дерева каталогов в смонтированной файловой системе. На практике это чаще всего происходит с привязками:

монтировать --bind / mnt / one / sub / mnt / partial

В / proc / mounts записи для / mnt / one и / mnt / partial имеют одно и то же устройство, один и тот же тип файловой системы и одинаковые параметры. Информация о том, что / mnt / partial показывает только ту часть файловой системы, которая имеет корневой каталог / sub, видна в информации о точках монтирования для каждого процесса в / proc / $ pid / mountinfo (столбец 4). Записи там выглядят так:

12 34 56:78 / / mnt / one rw, relatime - ext3 / dev / foo rw, errors = remount-ro, data = order 12 34 56:78 / sub / mnt / partial rw, relatime - ext3 / dev / foo rw, errors = remount-ro, data = заказано

И в моем тестировании вы можете извлечь нужную информацию, используя:

root@debian:~# cat /proc/1/mountinfo 
14 24 0:13 / /sys rw,nosuid,nodev,noexec,relatime - sysfs sysfs rw
15 24 0:3 / /proc rw,nosuid,nodev,noexec,relatime - proc proc rw
16 24 0:5 / /dev rw,relatime - devtmpfs udev rw,size=10240k,nr_inodes=126630,mode=755
17 16 0:10 / /dev/pts rw,nosuid,noexec,relatime - devpts devpts rw,gid=5,mode=620,ptmxmode=000
18 24 0:14 / /run rw,nosuid,noexec,relatime - tmpfs tmpfs rw,size=102704k,mode=755
20 24 11:0 / /lib/live/mount/medium ro,noatime - iso9660 /dev/sr0 ro
21 24 7:0 / /lib/live/mount/rootfs/filesystem.squashfs ro,noatime - squashfs /dev/loop0 ro
22 23 0:16 / /lib/live/mount/overlay rw,relatime - tmpfs tmpfs rw
23 24 0:17 / /lib/live/mount/overlay rw,noatime - tmpfs tmpfs rw,mode=755
24 1 0:18 / / rw,relatime - aufs aufs rw,si=993d359391edfb38,noxino
25 18 0:19 / /run/lock rw,nosuid,nodev,noexec,relatime - tmpfs tmpfs rw,size=5120k
26 18 0:20 / /run/shm rw,nosuid,nodev,noexec,relatime - tmpfs tmpfs rw,size=205400k
27 15 0:21 / /proc/sys/fs/binfmt_misc rw,nosuid,nodev,noexec,relatime - binfmt_misc binfmt_misc rw
29 24 0:18 / /bindmount rw,relatime - aufs aufs rw,si=993d359391edfb38,noxino
30 24 0:18 /root/old /root/new rw,relatime - aufs aufs rw,si=993d359391edfb38,noxino

Из: Список только привязанных креплений

Вы также можете использовать cat /proc/$$/mountinfo или в приложении вы можете использовать PID локального приложения.

В комментариях к другому вопросу еще один возможный вариант использования - findmnt |fgrep [ или если вы просто визуально проверяете, просто findmnt и вы можете прочитать столбец источника, чтобы увидеть перечисленные привязки.

root@debian:~# findmnt | fgrep [
└─/root/new                                  aufs[/root/old] aufs         rw,relatime,si=993d359391edfb38,noxino