From: Darrick J. Wong <djwong@xxxxxxxxxx> Augment the messaging in xfs_admin and xfs_repair to advise the user to replay a dirty log on a snapshotted filesystem by mounting with nouuid if the origin filesystem is still mounted. A user accidentally zapped the log when trying to mount a backup snapshot because the instructions we gave them weren't sufficient. Reported-by: Kjetil Torgrim Homme <kjetilho@xxxxxxxxxx> Signed-off-by: "Darrick J. Wong" <djwong@xxxxxxxxxx> --- db/sb.c | 9 +++++---- man/man5/xfs.5 | 5 +++++ repair/phase2.c | 9 +++++---- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/db/sb.c b/db/sb.c index aa8fce6712e571..52ac48d45d5ae6 100644 --- a/db/sb.c +++ b/db/sb.c @@ -266,10 +266,11 @@ sb_logcheck(void) dbprintf(_( "ERROR: The filesystem has valuable metadata changes in a log which needs to\n" "be replayed. Mount the filesystem to replay the log, and unmount it before\n" -"re-running %s. If you are unable to mount the filesystem, then use\n" -"the xfs_repair -L option to destroy the log and attempt a repair.\n" -"Note that destroying the log may cause corruption -- please attempt a mount\n" -"of the filesystem before doing this.\n"), progname); +"re-running %s. If the filesystem is a snapshot of a mounted filesystem,\n" +"you may need to give mount the nouuid option. If you are unable to mount\n" +"the filesystem, then use the xfs_repair -L option to destroy the log and\n" +"attempt a repair. Note that destroying the log may cause corruption --\n" +"please attempt a mount of the filesystem before doing this.\n"), progname); return 0; } /* Log is clean */ diff --git a/man/man5/xfs.5 b/man/man5/xfs.5 index 0c1edc53e227ce..f9c046d4721a14 100644 --- a/man/man5/xfs.5 +++ b/man/man5/xfs.5 @@ -91,6 +91,11 @@ .SH DESCRIPTION and .BR xfsrestore (8) are recommended for making copies of XFS filesystems. +To mount a snapshot of an already-mounted filesystem, you may need to supply +the +.B nouuid +option to +.BR mount " (8)." .SH OPERATIONS Some functionality specific to the XFS filesystem is accessible to applications through the diff --git a/repair/phase2.c b/repair/phase2.c index 29a406f69ca3a1..9a9733749266e5 100644 --- a/repair/phase2.c +++ b/repair/phase2.c @@ -72,10 +72,11 @@ zero_log( do_warn(_( "ERROR: The filesystem has valuable metadata changes in a log which needs to\n" "be replayed. Mount the filesystem to replay the log, and unmount it before\n" -"re-running xfs_repair. If you are unable to mount the filesystem, then use\n" -"the -L option to destroy the log and attempt a repair.\n" -"Note that destroying the log may cause corruption -- please attempt a mount\n" -"of the filesystem before doing this.\n")); +"re-running xfs_repair. If the filesystem is a snapshot of a mounted\n" +"filesystem, you may need to give mount the nouuid option.If you are unable\n" +"to mount the filesystem, then use the -L option to destroy the log and\n" +"attempt a repair. Note that destroying the log may cause corruption --\n" +"please attempt a mount of the filesystem before doing this.\n")); exit(2); } }