Table of Contents

Ubuntu - Processes - Mounting /proc

Objective

To ensure that procfs is mounted as /proc.


Symptoms

Errors caused by the absence of /proc often mention the inability to open a pathname within /proc, and in some cases suggest that you check whether procfs has been mounted. Here are some examples:

Cannot find /proc/version - is /proc mounted?

WARNING: Could not open /proc/net/vlan/config. Maybe you need to load the 8021q module, or maybe you are not using PROCFS??

Other messages may be less helpful and state only that some higher-level operation has failed. This could be almost anything related to the status or configuration of the running kernel, including in particular:


Diagnosis

Checking whether procfs has been mounted can be achieved trivially by listing the content of /proc:

ls /proc

The result should look broadly similar to this:

1     2118   31028  823          fb           loadavg       stat
101   2121   31029  acpi         filesystems  locks         swaps
1250  2125   31049  asound       fs           meminfo       sys
131   2233   4      buddyinfo    ide          misc          sysrq-trigger
132   2244   43     bus          interrupts   modules       sysvipc
133   2265   45     cgroups      iomem        mounts        timer_list
134   2284   46     cmdline      ioports      mtrr          timer_stats
1557  2286   5      cpuinfo      irq          net           tty
1570  2288   564    crypto       kallsyms     pagetypeinfo  uptime
2     2289   579    devices      kcore        partitions    version
2073  2290   581    diskstats    key-users    sched_debug   vmallocinfo
2082  2291   6      dma          kmsg         scsi          vmstat
2091  25840  609    driver       kpagecount   self          zoneinfo
2114  3      742    execdomains  kpageflags   slabinfo

but with details that depend on what processes are running and which kernel modules are loaded.

Alternatively, execute the mount command with no arguments and look for a line similar to:

none on /proc type proc (rw)

Possible causes

/proc is not listed in /etc/fstab

The most likely reason for procfs not being mounted is it not being listed in /etc/fstab. There should be a line of the form:

none /proc proc defaults 0 0

This should allow /proc to be mounted manually using the command:

mount /proc

and cause it to be mounted automatically on reboot.


The process is running inside a chroot

The process of entering a chroot does not cause init or any other boot-time scripts to be run, therefore even if /proc is listed in the copy of /etc/fstab within the chroot it will not be mounted automatically.

The solution is to mount from outside the chroot using the copy of /etc/fstab that governs the system as a whole. Whether you should actually do this depends on what the chroot is for:

For a chroot environment located at /opt/chroot an appropriate entry in /etc/fstab would be:

/proc /opt/chroot/proc none rw,bind 0 0

A bind mount has been used in this example.

It is possible to use an ordinary mount, because procfs does not object to being mounted twice, however that is not generally true for other filesystems.

The simplest and safest policy is to use bind mounts for everything.


procfs is missing from the kernel

This is very unlikely. Although procfs might once have been considered optional, this is not true in any meaningful sense for a modern Linux-based operating system.

Note that the procfs module is normally compiled into the kernel statically, so do not expect to find it in /lib/modules.