public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Robin H. Johnson" <robbat2@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/genkernel:master commit in: /, defaults/
Date: Fri,  6 Jan 2012 06:37:05 +0000 (UTC)	[thread overview]
Message-ID: <603a1978393aaf4e872dbcf0691a8272e0a3dc5d.robbat2@gentoo> (raw)

commit:     603a1978393aaf4e872dbcf0691a8272e0a3dc5d
Author:     Robin H. Johnson <robbat2 <AT> gentoo <DOT> org>
AuthorDate: Fri Jan  6 04:18:37 2012 +0000
Commit:     Robin H. Johnson <robbat2 <AT> gentoo <DOT> org>
CommitDate: Fri Jan  6 06:27:17 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/genkernel.git;a=commit;h=603a1978

Code to mount /usr and other filesystems as needed for new udev and systemd.

Signed-off-by: Robin H. Johnson <robbat2 <AT> gentoo.org>

---
 ChangeLog               |    4 ++++
 defaults/initrd.scripts |   25 +++++++++++++++++++++++++
 defaults/linuxrc        |   23 +++++++++++++++++++++--
 3 files changed, 50 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 48843ec..01598db 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -5,6 +5,10 @@
 # Distributed under the GPL v2
 # $Id$
 
+  06 Jan 2012; Robin H. Johnson <robbat2@gentoo.org> defaults/initrd.scripts,
+  defaults/linuxrc:
+  Code to mount /usr and other filesystems as needed for new udev and systemd.
+
   06 Jan 2012; Robin H. Johnson <robbat2@gentoo.org> genkernel:
   Bump version to 3.4.21.2. Stock configuration of 3.4.21.1 generates
   unbootable initramfs!

diff --git a/defaults/initrd.scripts b/defaults/initrd.scripts
index b7b42ab..89629e9 100755
--- a/defaults/initrd.scripts
+++ b/defaults/initrd.scripts
@@ -1178,3 +1178,28 @@ setup_unionfs() {
 		USE_UNIONFS_NORMAL=0
 	fi
 }
+
+get_mounts_list()
+{
+	awk '
+		/^[[:blank:]]*#/ { next }
+		{ print $1 }
+		' ${NEW_ROOT}/etc/initramfs.mounts
+}
+
+get_mount_options()
+{
+	awk -v fs="$1" '
+		/^[[:blank:]]*#/ { next }
+		$2 == fs { print $3 }
+		' ${NEW_ROOT}/etc/fstab
+}
+
+get_mount_device()
+{
+	awk -v fs="$1" '
+		/^[[:blank:]]*#/ { next }
+		$2 == fs { print $1 }
+		' ${NEW_ROOT}/etc/fstab
+}
+

diff --git a/defaults/linuxrc b/defaults/linuxrc
index 28d204e..599c0d1 100755
--- a/defaults/linuxrc
+++ b/defaults/linuxrc
@@ -701,6 +701,24 @@ else
 	fi
 fi
 
+# Mount the additional things as required by udev & systemd
+if [ ! -f ${NEW_ROOT}/etc/initramfs.mounts ]; then
+	fslist="/usr"
+else
+	fslist=$(get_mounts_list)
+fi
+
+for fs in $fslist; do
+	dev=$(get_mount_device $fs)
+	# In this case, it's probably part of the filesystem
+	# and not a mountpoint
+	[ -z "$dev" ] && continue
+	opts="ro,$(get_mount_options \"$fs\")"
+	if ! mount -o ${opts} $dev ${NEW_ROOT}${fs}; then
+		rescue_shell "Unable to mount $dev on $fs"
+	fi
+done
+
 # Execute script on the cdrom just before boot to update things if necessary
 cdupdate
 
@@ -746,10 +764,11 @@ exec /sbin/switch_root -c "/dev/console" "${CHROOT}" "${REAL_INIT:-/sbin/init}"
 # If we get here, something bad has happened
 splash 'verbose'
 
-echo 'A fatal error has probably occured since /sbin/init did not'
-echo 'boot correctly. Trying to open a shell...'
+echo "A fatal error has probably occured since ${REAL_INIT:-/sbin/init} did not"
+echo "boot correctly. Trying to open a shell..."
 echo
 exec /bin/bash
 exec /bin/sh
 exec /bin/ash
+exec /bin/dash
 exec sh



             reply	other threads:[~2012-01-06  6:37 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-01-06  6:37 Robin H. Johnson [this message]
  -- strict thread matches above, loose matches on Subject: below --
2020-07-23 23:57 [gentoo-commits] proj/genkernel:master commit in: /, defaults/ Thomas Deutschmann
2019-11-26 13:50 Thomas Deutschmann
2019-07-21 16:26 Thomas Deutschmann
2017-09-04  5:36 Robin H. Johnson
2017-01-08  1:57 Robin H. Johnson
2017-01-07 23:50 Robin H. Johnson
2017-01-02 23:25 Robin H. Johnson
2016-05-16  6:55 Robin H. Johnson
2016-01-05 19:39 Robin H. Johnson
2016-01-05 19:39 Robin H. Johnson
2013-06-06  3:36 [gentoo-commits] proj/genkernel:ryao " Richard Yao
2013-06-03 23:49 ` [gentoo-commits] proj/genkernel:master " Richard Yao
2013-04-25  6:22 Fabio Erculiani
2012-10-16  0:03 Robin H. Johnson
2012-10-03 16:24 Sebastian Pipping
2012-08-30 16:20 Fabio Erculiani
2012-08-12 19:04 Sebastian Pipping
2012-07-24 18:01 Robin H. Johnson
2012-07-24 17:29 Robin H. Johnson
2012-07-24  8:29 Robin H. Johnson
2012-07-19 20:12 Richard Yao
2012-07-09 17:51 Sebastian Pipping
2012-07-08 17:05 Sebastian Pipping
2012-05-17 18:34 Sebastian Pipping
2012-03-17  1:27 Sebastian Pipping
2012-03-17  1:27 Sebastian Pipping
2012-03-17  1:27 Sebastian Pipping
2012-03-17  1:27 Sebastian Pipping
2012-02-20  6:58 Robin H. Johnson
2012-02-09  7:42 Robin H. Johnson
2012-02-06  9:35 Robin H. Johnson
2012-02-06  8:19 Robin H. Johnson
2012-01-14 23:22 Sebastian Pipping
2012-01-13 23:19 Sebastian Pipping
2012-01-13 23:19 Sebastian Pipping
2011-11-08 17:21 Sebastian Pipping
2011-10-08 21:22 Fabio Erculiani
2011-09-13  9:54 Fabio Erculiani
2011-09-11  7:40 Fabio Erculiani
2011-08-30 15:34 Sebastian Pipping
2011-07-27 17:38 Sebastian Pipping
2011-05-31 10:58 Sebastian Pipping

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=603a1978393aaf4e872dbcf0691a8272e0a3dc5d.robbat2@gentoo \
    --to=robbat2@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox