* e2fsck: /dev/hda2 is mounted.
@ 2016-03-13 10:14 George Spelvin
2016-03-14 6:58 ` George Spelvin
` (3 more replies)
0 siblings, 4 replies; 10+ messages in thread
From: George Spelvin @ 2016-03-13 10:14 UTC (permalink / raw)
To: kzak, util-linux; +Cc: linux
After a recent upgrade of a Debian system, I discovered that
systems weren't rebooting; they would always halt in the automatic
fsck of other file systems.
Upon investigation, it turned out that fsck didn't understand the
kernel "root=302" parameter and was trying to run e2fsck on the root
file system. This produced an error, causing the boot process
to drop into a recovery shell.
System is i386, current Debian sid (unstable). But I compiled
util-linux from the git sources to eliminate Debianisms from
the problem.
Running the v2.28-rc1 release (8c97556ecfc0af358d35dc7a842aaadde5eeafd3)
I got some compile warnings (appended for reference), but a
working execurable which could be run as follows:
LIBMOUNT_DEBUG=all LIBBLKID_DEBUG=all ./fsck -C -M -A -V
32305: libmount: INIT: library debug mask: 0xffff
32305: libmount: INIT: library version: 2.28.
32305: libmount: INIT: feature: btrfs
32305: libmount: INIT: feature: assert
32305: libmount: INIT: feature: debug
Available "LIBMOUNT_DEBUG=<name>[,...]|<mask>" debug masks:
all [0xffff] : info about all subsystems
cache [0x0004] : paths and tags cache
cxt [0x0200] : library context (handler)
diff [0x0400] : mountinfo changes tracking
fs [0x0040] : FS abstraction
help [0x0001] : this help
locks [0x0010] : mtab and utab locking
loop [0x2000] : loop devices routines
options [0x0008] : mount options parsing
tab [0x0020] : fstab, mtab, mounninfo routines
update [0x0080] : mtab, utab updates
utils [0x0100] : misc library utils
monitor [0x0800] : mount tables monitor
btrfs [0x1000] : btrfs specific routines
32305: libmount: CACHE: [0x983a048]: alloc
lt-fsck from util-linux 2.28-rc1
32305: libmount: TAB: [0x983a068]: alloc
32305: libmount: TAB: [0x983a068]: /etc/fstab: start parsing [entries=0, filter=not]
32305: libmount: TAB: [0x983a068]: add entry: /dev/hda1 none
32305: libmount: TAB: [0x983a068]: add entry: /dev/hda2 /
32305: libmount: TAB: [0x983a068]: add entry: proc /proc
32305: libmount: TAB: [0x983a068]: add entry: tmpfs /tmp
32305: libmount: TAB: [0x983a068]: add entry: /dev/fd0 /a
32305: libmount: TAB: [0x983a068]: add entry: /dev/hdc /cd
32305: libmount: TAB: [0x983a068]: add entry: /dev/hdd /dvd
32305: libmount: TAB: [0x983a068]: add entry: /dev/hda3 /home
32305: libmount: FS: [0x983a9c8]: free [refcount=0]
32305: libmount: TAB: [0x983a068]: /etc/fstab: stop parsing (8 entries)
32305: libmount: TAB: [0x983a068]: parsing done [filename=/etc/fstab, rc=0]
32305: libmount: CACHE: [0x983a048]: canonicalize path /dev/hda2
32305: libmount: CACHE: [0x983a048]: add entry [ 1] (path): /dev/hda2: /dev/hda2
32305: libmount: CACHE: [0x983a048]: canonicalize path /dev/hda3
32305: libmount: CACHE: [0x983a048]: add entry [ 2] (path): /dev/hda3: /dev/hda3
Checking all file systems.
32305: libmount: TAB: [0x983a068]: lookup TARGET: '/'
32305: libmount: TAB: [0x983a160]: alloc
32305: libmount: UTILS: mtab: /etc/mtab
32305: libmount: UTILS: /etc/mtab: irregular/non-writable
32305: libmount: TAB: [0x983a160]: mtab parse: #1 read mountinfo
32305: libmount: TAB: [0x983a160]: /proc/self/mountinfo: start parsing [entries=0, filter=not]
32305: libmount: TAB: [0x983a160]: add entry: /dev/root /
32305: libmount: CACHE: canonicalize path /proc/self/mountinfo
32305: libmount: TAB: TID for /proc/self/mountinfo is 32305
32305: libmount: TAB: [0x983a160]: root FS: 302
32305: libmount: CACHE: [0x983a048]: canonicalize path 302
32305: libmount: CACHE: [0x983a048]: add entry [ 3] (path): 302: 302
32305: libmount: TAB: [0x983a160]: canonical root FS: 302
32305: libmount: TAB: [0x983a160]: add entry: sysfs /sys
32305: libmount: TAB: [0x983a160]: add entry: tmpfs /run
32305: libmount: TAB: [0x983a160]: add entry: tmpfs /run/lock
32305: libmount: TAB: [0x983a160]: add entry: proc /proc
32305: libmount: TAB: [0x983a160]: add entry: devtmpfs /dev
32305: libmount: TAB: [0x983a160]: add entry: tmpfs /run/shm
32305: libmount: TAB: [0x983a160]: add entry: devpts /dev/pts
32305: libmount: TAB: [0x983a160]: add entry: tmpfs /tmp
32305: libmount: TAB: [0x983a160]: add entry: /dev/hda3 /home
32305: libmount: FS: [0x983ddc8]: free [refcount=0]
32305: libmount: TAB: [0x983a160]: /proc/self/mountinfo: stop parsing (10 entries)
32305: libmount: TAB: [0x983a160]: parsing done [filename=/proc/self/mountinfo, rc=0]
32305: libmount: TAB: [0x983a160]: mtab parse: #2 read utab
32305: libmount: TAB: [0x983a160]: lookup SOURCE: '/dev/hda2'
32305: libmount: TAB: [0x983a160]: lookup SRCPATH: '/dev/hda2'
32305: libmount: TAB: [0x983a160]: lookup canonical SRCPATH: '/dev/hda2'
/dev/hda2 is not mounted
[/sbin/fsck.ext4 (1) -- /] fsck.ext4 -C0 /dev/hda2
32318: libblkid: INIT: library debug mask: 0xffff
32318: libblkid: INIT: library version: 2.27.0 [02-Nov-2015]
Available "LIBBLKID_DEBUG=<name>[,...]|<mask>" debug masks:
all [0xffff] : info about all subsystems
cache [0x0004] : blkid tags cache
config [0x0008] : config file utils
dev [0x0010] : device utils
devname [0x0020] : /proc/partitions evaluation
devno [0x0040] : convertions to device name
evaluate [0x0080] : tags resolving
help [0x0001] : this help
lowprobe [0x0100] : superblock/raids/partitions probing
probe [0x0200] : devices verification
read [0x0400] : cache parsing
save [0x0800] : cache writing
tag [0x1000] : tags utils
32318: libblkid: CACHE: creating blkid cache (using default cache)
32318: libblkid: CONFIG: reading config file: /etc/blkid.conf.
32318: libblkid: CONFIG: /etc/blkid.conf: does not exist, using built-in default
32318: libblkid: TAG: looking for /dev/hda2 in cache
e2fsck 1.43-WIP (18-May-2015)
/dev/hda2 is mounted.
e2fsck: Cannot continue, aborting.
I'm not quite sure where in the code this is *supposed* to be parsed
so I haven't found the bug yet. It *used* to work, but I fear it's
been months since my last reboot and I don't have a list of everything
that changed.
Other problems encountered during compilation:
checking linux/gsmmux.h usability... no
checking linux/gsmmux.h presence... yes
configure: WARNING: linux/gsmmux.h: present but cannot be compiled
configure: WARNING: linux/gsmmux.h: check for missing prerequisite headers?
configure: WARNING: linux/gsmmux.h: see the Autoconf documentation
configure: WARNING: linux/gsmmux.h: section "Present But Cannot Be Compiled"
configure: WARNING: linux/gsmmux.h: proceeding with the compiler's result
configure: WARNING: ## ------------------------------ ##
configure: WARNING: ## Report this to kzak@redhat.com ##
configure: WARNING: ## ------------------------------ ##
checking for linux/gsmmux.h... no
The details from config.log look more like a problem with the headers
rather than util-linux, but it says report it, so I am:
configure:18012: checking linux/gsmmux.h usability
configure:18012: gcc -c -g -O2 conftest.c >&5
In file included from /usr/include/linux/gsmmux.h:4:0,
from conftest.c:79:
/usr/include/linux/if.h:211:19: error: field 'ifru_addr' has incomplete type
struct sockaddr ifru_addr;
^
/usr/include/linux/if.h:212:19: error: field 'ifru_dstaddr' has incomplete type
struct sockaddr ifru_dstaddr;
^
/usr/include/linux/if.h:213:19: error: field 'ifru_broadaddr' has incomplete type
struct sockaddr ifru_broadaddr;
^
/usr/include/linux/if.h:214:19: error: field 'ifru_netmask' has incomplete type
struct sockaddr ifru_netmask;
^
/usr/include/linux/if.h:215:20: error: field 'ifru_hwaddr' has incomplete type
struct sockaddr ifru_hwaddr;
^
configure:18012: $? = 1
There were also two batches of complaints about mismatched types in printf:
CC libfdisk/src/libfdisk_la-alignment.lo
In file included from libfdisk/src/fdiskP.h:25:0,
from libfdisk/src/alignment.c:7:
libfdisk/src/alignment.c: In function 'fdisk_align_lba':
libfdisk/src/alignment.c:115:29: warning: format '%ju' expects argument of type 'uintmax_t', but argument 6 has type 'long unsigned int' [-Wformat=]
DBG(CXT, ul_debugobj(cxt, "LBA %ju -aligned-%s-> %ju [grain=%jus]",
^
./include/debug.h:63:4: note: in definition of macro '__UL_DBG'
x; \
^
libfdisk/src/alignment.c:115:3: note: in expansion of macro 'DBG'
DBG(CXT, ul_debugobj(cxt, "LBA %ju -aligned-%s-> %ju [grain=%jus]",
^
CC sys-utils/lsns-lsns.o
In file included from sys-utils/lsns.c:45:0:
sys-utils/lsns.c: In function 'add_namespace':
sys-utils/lsns.c:346:26: warning: format '%lu' expects argument of type 'long unsigned int', but argument 4 has type 'ino_t {aka long long unsigned int}' [-Wformat=]
DBG(NS, ul_debugobj(ns, "new %s[%lu]", ns_names[type], ino));
^
./include/debug.h:63:4: note: in definition of macro '__UL_DBG'
x; \
^
sys-utils/lsns.c:346:2: note: in expansion of macro 'DBG'
DBG(NS, ul_debugobj(ns, "new %s[%lu]", ns_names[type], ino));
^
sys-utils/lsns.c: In function 'add_process_to_namespace':
sys-utils/lsns.c:362:26: warning: format '%lu' expects argument of type 'long unsigned int', but argument 6 has type 'ino_t {aka long long unsigned int}' [-Wformat=]
DBG(NS, ul_debugobj(ns, "add process [%p] pid=%d to %s[%lu]", proc, proc->pid,
^
./include/debug.h:63:4: note: in definition of macro '__UL_DBG'
x; \
^
sys-utils/lsns.c:362:2: note: in expansion of macro 'DBG'
DBG(NS, ul_debugobj(ns, "add process [%p] pid=%d to %s[%lu]", proc, proc->pid,
^
sys-utils/lsns.c: In function 'add_scols_line':
sys-utils/lsns.c:440:20: warning: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 'ino_t {aka long long unsigned int}' [-Wformat=]
xasprintf(&str, "%lu", ns->id);
^
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: e2fsck: /dev/hda2 is mounted.
2016-03-13 10:14 e2fsck: /dev/hda2 is mounted George Spelvin
@ 2016-03-14 6:58 ` George Spelvin
2016-03-14 16:29 ` Karel Zak
` (2 subsequent siblings)
3 siblings, 0 replies; 10+ messages in thread
From: George Spelvin @ 2016-03-14 6:58 UTC (permalink / raw)
To: kzak, util-linux; +Cc: linux
I dug back through the commit log, and discovered that reverting
7a4f98854283a5b98e76902b12685ad1999b2802
fixes the regression.
I assume reverting this isn't the preferred solution, but it
at least narrows down the issue.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: e2fsck: /dev/hda2 is mounted.
2016-03-13 10:14 e2fsck: /dev/hda2 is mounted George Spelvin
2016-03-14 6:58 ` George Spelvin
@ 2016-03-14 16:29 ` Karel Zak
2016-03-14 18:44 ` George Spelvin
2016-03-14 23:00 ` Ruediger Meier
2016-03-15 13:10 ` Karel Zak
3 siblings, 1 reply; 10+ messages in thread
From: Karel Zak @ 2016-03-14 16:29 UTC (permalink / raw)
To: George Spelvin; +Cc: util-linux
On Sun, Mar 13, 2016 at 06:14:14AM -0400, George Spelvin wrote:
> 32305: libmount: TAB: [0x983a160]: /proc/self/mountinfo: start parsing [entries=0, filter=not]
> 32305: libmount: TAB: [0x983a160]: add entry: /dev/root /
> 32305: libmount: CACHE: canonicalize path /proc/self/mountinfo
> 32305: libmount: TAB: TID for /proc/self/mountinfo is 32305
> 32305: libmount: TAB: [0x983a160]: root FS: 302
> 32305: libmount: CACHE: [0x983a048]: canonicalize path 302
> 32305: libmount: CACHE: [0x983a048]: add entry [ 3] (path): 302: 302
> 32305: libmount: TAB: [0x983a160]: canonical root FS: 302
> 32305: libmount: TAB: [0x983a160]: add entry: sysfs /sys
> 32305: libmount: TAB: [0x983a160]: add entry: tmpfs /run
> 32305: libmount: TAB: [0x983a160]: add entry: tmpfs /run/lock
> 32305: libmount: TAB: [0x983a160]: add entry: proc /proc
> 32305: libmount: TAB: [0x983a160]: add entry: devtmpfs /dev
> 32305: libmount: TAB: [0x983a160]: add entry: tmpfs /run/shm
> 32305: libmount: TAB: [0x983a160]: add entry: devpts /dev/pts
> 32305: libmount: TAB: [0x983a160]: add entry: tmpfs /tmp
> 32305: libmount: TAB: [0x983a160]: add entry: /dev/hda3 /home
> 32305: libmount: FS: [0x983ddc8]: free [refcount=0]
> 32305: libmount: TAB: [0x983a160]: /proc/self/mountinfo: stop parsing (10 entries)
> 32305: libmount: TAB: [0x983a160]: parsing done [filename=/proc/self/mountinfo, rc=0]
> 32305: libmount: TAB: [0x983a160]: mtab parse: #2 read utab
> 32305: libmount: TAB: [0x983a160]: lookup SOURCE: '/dev/hda2'
> 32305: libmount: TAB: [0x983a160]: lookup SRCPATH: '/dev/hda2'
> 32305: libmount: TAB: [0x983a160]: lookup canonical SRCPATH: '/dev/hda2'
> /dev/hda2 is not mounted
Can you send me your /proc/self/mountinfo? (or at least root fs entry
from the file)
Thanks,
Karel
--
Karel Zak <kzak@redhat.com>
http://karelzak.blogspot.com
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: e2fsck: /dev/hda2 is mounted.
2016-03-14 16:29 ` Karel Zak
@ 2016-03-14 18:44 ` George Spelvin
2016-03-14 23:38 ` Ruediger Meier
0 siblings, 1 reply; 10+ messages in thread
From: George Spelvin @ 2016-03-14 18:44 UTC (permalink / raw)
To: kzak, linux; +Cc: util-linux
Thanks for the help. I don't quite understand the structure of libmount
well enough to know where a fix *should* go.
> Can you send me your /proc/self/mountinfo? (or at least root fs entry
> from the file)
12 0 3:2 / / rw,relatime - ext4 /dev/root rw,errors=remount-ro,data=ordered
13 12 0:12 / /sys rw,nosuid,nodev,noexec,relatime - sysfs sysfs rw
14 12 0:13 / /run rw,nosuid,noexec,relatime - tmpfs tmpfs rw,size=207448k,mode=755
15 14 0:14 / /run/lock rw,nosuid,nodev,noexec,relatime - tmpfs tmpfs rw,size=5120k
16 12 0:4 / /proc rw,nosuid,nodev,noexec,relatime - proc proc rw
17 12 0:6 / /dev rw,nosuid,relatime - devtmpfs devtmpfs rw,size=10240k,nr_inodes=221580,mode=755
18 14 0:15 / /run/shm rw,nosuid,nodev,noexec,relatime - tmpfs tmpfs rw,size=1391640k
19 17 0:11 / /dev/pts rw,nosuid,noexec,relatime - devpts devpts rw,gid=5,mode=620
20 12 0:16 / /tmp rw,noexec,relatime - tmpfs tmpfs rw,size=524288k
21 12 3:3 / /home rw,relatime - ext4 /dev/hda3 rw,data=ordered
And here's /etc/mtab -> /proc/mounts:
/dev/root / ext4 rw,relatime,errors=remount-ro,data=ordered 0 0
sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
tmpfs /run tmpfs rw,nosuid,noexec,relatime,size=207448k,mode=755 0 0 tmpfs /run/lock tmpfs rw,nosuid,nodev,noexec,relatime,size=5120k 0 0
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
devtmpfs /dev devtmpfs rw,nosuid,relatime,size=10240k,nr_inodes=221580,mode=755 0 0
tmpfs /run/shm tmpfs rw,nosuid,nodev,noexec,relatime,size=1391640k 0 0
devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620 0 0
tmpfs /tmp tmpfs rw,noexec,relatime,size=524288k 0 0
/dev/hda3 /home ext4 rw,relatime,data=ordered 0 0 16,0-1 All
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: e2fsck: /dev/hda2 is mounted.
2016-03-13 10:14 e2fsck: /dev/hda2 is mounted George Spelvin
2016-03-14 6:58 ` George Spelvin
2016-03-14 16:29 ` Karel Zak
@ 2016-03-14 23:00 ` Ruediger Meier
2016-03-15 13:10 ` Karel Zak
3 siblings, 0 replies; 10+ messages in thread
From: Ruediger Meier @ 2016-03-14 23:00 UTC (permalink / raw)
To: George Spelvin; +Cc: kzak, util-linux
On Sunday 13 March 2016, George Spelvin wrote:
> There were also two batches of complaints about mismatched types in
> printf:
> [...]
These warnings are fixed already in e1a15f8f. They are indicating that
you are using a 32bit system. Maybe that's important to reproduce the
bug.
cu,
Rudi
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: e2fsck: /dev/hda2 is mounted.
2016-03-14 18:44 ` George Spelvin
@ 2016-03-14 23:38 ` Ruediger Meier
2016-03-15 9:26 ` Karel Zak
0 siblings, 1 reply; 10+ messages in thread
From: Ruediger Meier @ 2016-03-14 23:38 UTC (permalink / raw)
To: George Spelvin; +Cc: kzak, util-linux
On Monday 14 March 2016, George Spelvin wrote:
> Thanks for the help. I don't quite understand the structure of
> libmount well enough to know where a fix *should* go.
>
> > Can you send me your /proc/self/mountinfo? (or at least root fs
> > entry from the file)
> 12 0 3:2 / / rw,relatime - ext4 /dev/root
> [...]
Maybe it's not related but I've noticed a similar issue where
getmntent() was not able to parse long lines in /proc/mounts. It was
with musl and I've asked there
http://permalink.gmane.org/gmane.linux.lib.musl.general/9548
I've got no reply, so maybe it was a stupid question and we are doing
something wrong ;)
cu,
Rudi
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: e2fsck: /dev/hda2 is mounted.
2016-03-14 23:38 ` Ruediger Meier
@ 2016-03-15 9:26 ` Karel Zak
2016-03-15 19:12 ` George Spelvin
0 siblings, 1 reply; 10+ messages in thread
From: Karel Zak @ 2016-03-15 9:26 UTC (permalink / raw)
To: Ruediger Meier; +Cc: George Spelvin, util-linux
On Tue, Mar 15, 2016 at 12:38:10AM +0100, Ruediger Meier wrote:
> On Monday 14 March 2016, George Spelvin wrote:
> > Thanks for the help. I don't quite understand the structure of
> > libmount well enough to know where a fix *should* go.
> >
> > > Can you send me your /proc/self/mountinfo? (or at least root fs
> > > entry from the file)
>
> > 12 0 3:2 / / rw,relatime - ext4 /dev/root
> > [...]
>
> Maybe it's not related but I've noticed a similar issue where
> getmntent() was not able to parse long lines in /proc/mounts. It was
> with musl and I've asked there
> http://permalink.gmane.org/gmane.linux.lib.musl.general/9548
>
> I've got no reply, so maybe it was a stupid question and we are doing
> something wrong ;)
The problem in this case is /dev/root, libmount tries to convert it to
the real device name by root= command line option, but the conversion
is pretty poor and it does not support all relevant use-cases.
I'll try to improve it. It also seems that in many cases (except
btrfs) we can follow maj:min from mountinfo entry rather than parse
the complicated root= option.
Karel
--
Karel Zak <kzak@redhat.com>
http://karelzak.blogspot.com
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: e2fsck: /dev/hda2 is mounted.
2016-03-13 10:14 e2fsck: /dev/hda2 is mounted George Spelvin
` (2 preceding siblings ...)
2016-03-14 23:00 ` Ruediger Meier
@ 2016-03-15 13:10 ` Karel Zak
2016-03-15 18:07 ` George Spelvin
3 siblings, 1 reply; 10+ messages in thread
From: Karel Zak @ 2016-03-15 13:10 UTC (permalink / raw)
To: George Spelvin; +Cc: util-linux
On Sun, Mar 13, 2016 at 06:14:14AM -0400, George Spelvin wrote:
> Upon investigation, it turned out that fsck didn't understand the
> kernel "root=302" parameter and was trying to run e2fsck on the root
> file system. This produced an error, causing the boot process
> to drop into a recovery shell.
...
> Running the v2.28-rc1 release (8c97556ecfc0af358d35dc7a842aaadde5eeafd3)
> I got some compile warnings (appended for reference), but a
> working execurable which could be run as follows:
The problem should be fixed, git pull, make and re-test, please.
Thanks
Karel
--
Karel Zak <kzak@redhat.com>
http://karelzak.blogspot.com
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: e2fsck: /dev/hda2 is mounted.
2016-03-15 13:10 ` Karel Zak
@ 2016-03-15 18:07 ` George Spelvin
0 siblings, 0 replies; 10+ messages in thread
From: George Spelvin @ 2016-03-15 18:07 UTC (permalink / raw)
To: kzak; +Cc: linux, sweet_f_a, util-linux
> The problem should be fixed, git pull, make and re-test, please.
After a bit of screwing around with Debian dependencies (the fix ends up
in the libmount package, not the util-linux package, and util-linux only
depends on libmount >= 2.25), I can confirm that it works.
Thank you very much!
LIBMOUNT_DEBUG=all LIBBLKID_DEBUG=all fsck -C -M -A -V
3411: libmount: INIT: library debug mask: 0xffff
3411: libmount: INIT: library version: 2.28.
3411: libmount: INIT: feature: selinux
3411: libmount: INIT: feature: btrfs
3411: libmount: INIT: feature: force-mountinfo
3411: libmount: INIT: feature: assert
3411: libmount: INIT: feature: debug
Available "LIBMOUNT_DEBUG=<name>[,...]|<mask>" debug masks:
all [0xffff] : info about all subsystems
cache [0x0004] : paths and tags cache
cxt [0x0200] : library context (handler)
diff [0x0400] : mountinfo changes tracking
fs [0x0040] : FS abstraction
help [0x0001] : this help
locks [0x0010] : mtab and utab locking
loop [0x2000] : loop devices routines
options [0x0008] : mount options parsing
tab [0x0020] : fstab, mtab, mounninfo routines
update [0x0080] : mtab, utab updates
utils [0x0100] : misc library utils
monitor [0x0800] : mount tables monitor
btrfs [0x1000] : btrfs specific routines
3411: libmount: CACHE: [0x8d84048]: alloc
fsck from util-linux 2.28-rc1
3411: libmount: TAB: [0x8d84068]: alloc
3411: libmount: TAB: [0x8d84068]: /etc/fstab: start parsing [entries=0, filter=not]
3411: libmount: TAB: [0x8d84068]: add entry: /dev/hda1 none
3411: libmount: TAB: [0x8d84068]: add entry: /dev/hda2 /
3411: libmount: TAB: [0x8d84068]: add entry: proc /proc
3411: libmount: TAB: [0x8d84068]: add entry: tmpfs /tmp
3411: libmount: TAB: [0x8d84068]: add entry: /dev/fd0 /a
3411: libmount: TAB: [0x8d84068]: add entry: /dev/hdc /cd
3411: libmount: TAB: [0x8d84068]: add entry: /dev/hdd /dvd
3411: libmount: TAB: [0x8d84068]: add entry: /dev/hda3 /home
3411: libmount: FS: [0x8d849c8]: free [refcount=0]
3411: libmount: TAB: [0x8d84068]: /etc/fstab: stop parsing (8 entries)
3411: libmount: TAB: [0x8d84068]: parsing done [filename=/etc/fstab, rc=0]
3411: libmount: CACHE: [0x8d84048]: canonicalize path /dev/hda2
3411: libmount: CACHE: [0x8d84048]: add entry [ 1] (path): /dev/hda2: /dev/hda2
3411: libmount: CACHE: [0x8d84048]: canonicalize path /dev/hda3
3411: libmount: CACHE: [0x8d84048]: add entry [ 2] (path): /dev/hda3: /dev/hda3
Checking all file systems.
3411: libmount: TAB: [0x8d84068]: lookup TARGET: '/'
3411: libmount: TAB: [0x8d84160]: alloc
3411: libmount: TAB: [0x8d84160]: mtab parse: ignore mtab
3411: libmount: TAB: [0x8d84160]: mtab parse: #1 read mountinfo
3411: libmount: TAB: [0x8d84160]: /proc/self/mountinfo: start parsing [entries=0, filter=not]
3411: libmount: TAB: [0x8d84160]: add entry: /dev/root /
3411: libmount: CACHE: canonicalize path /proc/self/mountinfo
3411: libmount: TAB: TID for /proc/self/mountinfo is 3411
3411: libmount: UTILS: guessing system root [devno 3:2]
3411: libmount: UTILS: devno converted to /dev/hda2
3411: libmount: TAB: [0x8d84160]: canonical root FS: /dev/hda2
3411: libmount: TAB: [0x8d84160]: add entry: sysfs /sys
3411: libmount: TAB: [0x8d84160]: add entry: tmpfs /run
3411: libmount: TAB: [0x8d84160]: add entry: tmpfs /run/lock
3411: libmount: TAB: [0x8d84160]: add entry: proc /proc
3411: libmount: TAB: [0x8d84160]: add entry: devtmpfs /dev
3411: libmount: TAB: [0x8d84160]: add entry: tmpfs /run/shm
3411: libmount: TAB: [0x8d84160]: add entry: devpts /dev/pts
3411: libmount: TAB: [0x8d84160]: add entry: tmpfs /tmp
3411: libmount: TAB: [0x8d84160]: add entry: /dev/hda3 /home
3411: libmount: FS: [0x8d87dc8]: free [refcount=0]
3411: libmount: TAB: [0x8d84160]: /proc/self/mountinfo: stop parsing (10 entries)
3411: libmount: TAB: [0x8d84160]: parsing done [filename=/proc/self/mountinfo, rc=0]
3411: libmount: TAB: [0x8d84160]: mtab parse: #2 read utab
3411: libmount: TAB: [0x8d84160]: lookup SOURCE: '/dev/hda2'
3411: libmount: TAB: [0x8d84160]: lookup SRCPATH: '/dev/hda2'
/dev/hda2 is mounted
3411: libmount: TAB: [0x8d84160]: lookup SOURCE: '/dev/hda3'
3411: libmount: TAB: [0x8d84160]: lookup SRCPATH: '/dev/hda3'
/dev/hda3 is mounted
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: e2fsck: /dev/hda2 is mounted.
2016-03-15 9:26 ` Karel Zak
@ 2016-03-15 19:12 ` George Spelvin
0 siblings, 0 replies; 10+ messages in thread
From: George Spelvin @ 2016-03-15 19:12 UTC (permalink / raw)
To: kzak, sweet_f_a; +Cc: linux, util-linux
> The problem in this case is /dev/root, libmount tries to convert it to
> the real device name by root= command line option, but the conversion
> is pretty poor and it does not support all relevant use-cases.
Yes, that is a bit annoying. It also breaks e4defrag. I have a kludgey
script on my systems that parses /etc/fstab and creates a /dev/root
symlink, but of course there's no guarantee that fstab matches
the kernel root= command line.
If you feel like creating a makedevroot(8) utility (which creates a
symlink if it can, or a device node if it can't), I suspect it would
be appreciated.
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2016-03-15 19:12 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-03-13 10:14 e2fsck: /dev/hda2 is mounted George Spelvin
2016-03-14 6:58 ` George Spelvin
2016-03-14 16:29 ` Karel Zak
2016-03-14 18:44 ` George Spelvin
2016-03-14 23:38 ` Ruediger Meier
2016-03-15 9:26 ` Karel Zak
2016-03-15 19:12 ` George Spelvin
2016-03-14 23:00 ` Ruediger Meier
2016-03-15 13:10 ` Karel Zak
2016-03-15 18:07 ` George Spelvin
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.