Go to file
Martin Wilck 4c2d98c75b emergency.service: use Type=idle
Type=oneshot, as currently set in dracut's emergency service file,
causes an awkward situation if emergency mode is entered e.g. because
of a root device timeout, and the root device appears later because it
just has taken longer than the timeout. In that situation, my
expectation (backed by past positive experience) is that the user should
be able to simply exit the emergency shell and resume normal boot.

:/# systemctl status sysroot.mount
● sysroot.mount - /sysroot
   Loaded: loaded (/proc/cmdline; bad; vendor preset: enabled)
   Active: active (mounted) since Mon 2017-10-09 14:32:15 CEST; 16s ago
    Where: /sysroot
     What: /dev/mapper/3600601600a30200024fbbaf3f500e411-part5
     Docs: man:fstab(5)
           man:systemd-fstab-generator(8)
  Process: 1873 ExecMount=/usr/bin/mount /dev/disk/by-uuid/63751805-6abc-46a3-a66f-427920dece4d /sysroot -o ro (code=exited, status=0/SUCCESS)
    Tasks: 0 (limit: 512)

:/# systemctl list-jobs
JOB UNIT              TYPE  STATE
 56 emergency.target  start waiting
 57 emergency.service start running

2 jobs listed.
:/# exit
logout
Failed to start default.target: Transaction is destructive.

(system keeps idling from this point on, user has no chance to
do anything).

This results from the combination of two effects:
1) initrd-root-fs.target sets "OnFailureJobMode=replace-irreversibly",
2) emergency.service's Type=oneshot causes the start jobs for both
emergency.service and emergency.target to persist while the user is in
the emergency shell.

When the shell is exited, systemd tries to isolate "initrd.target"
again, but this fails with "the transaction is destructive" error
because of the still pending jobs.

This patch fixes this by changing the Type of "emergency.service" from
"oneshot" to "idle".
2017-10-09 14:51:45 +02:00
dracut.conf.d add --no-reproducible to turn off reproducible mode 2015-11-13 11:53:36 +01:00
install dracut-install: fixed hostonly modules hashmap_put 2017-08-10 09:20:35 +02:00
modules.d emergency.service: use Type=idle 2017-10-09 14:51:45 +02:00
skipcpio skipcpio/skipcpio.c: linux kernel only accepts "070701" signature 2015-07-07 13:44:13 +02:00
test TEST-70: sort interfaces for validation 2017-10-09 12:53:40 +02:00
.dir-locals.el .dir-locals.el: changed to sane style 2017-01-16 14:27:39 +01:00
.gitignore Ignore more generated files 2017-01-25 13:27:05 +01:00
.kateconfig add kate and emacs per directory config files 2014-08-29 13:38:47 +02:00
.kateproject kate config 2016-04-15 10:27:48 +02:00
.mailmap add .mailmap 2017-04-10 14:50:21 +02:00
50-dracut.install kernel-install: Skip to create initrd if /etc/machine-id is missing or empty 2017-06-02 18:07:25 +09:00
51-dracut-rescue-postinst.sh use cp --reflink=auto 2015-05-13 12:02:10 +02:00
51-dracut-rescue.install kernel-install: Skip to create initrd if /etc/machine-id is missing or empty 2017-06-02 18:07:25 +09:00
AUTHORS NEWS and AUTHORS update 2017-04-03 10:26:25 +02:00
COPYING COPYING: updated to recent version of http://www.gnu.org/licenses/gpl-2.0.txt 2012-08-01 15:53:25 +02:00
HACKING removed trailing whitespaces 2011-05-10 11:56:09 +02:00
Makefile fix build with KMOD 2017-04-24 21:37:56 +02:00
NEWS NEWS: update 2017-08-11 13:44:06 +02:00
PKGBUILD PKGFILE: prevent out of tree builds 2015-11-08 12:57:33 +01:00
README README: update 2016-11-03 14:54:45 +01:00
README.generic removed trailing whitespaces 2011-05-10 11:56:09 +02:00
README.kernel Version 006 2010-06-17 10:58:27 +02:00
README.md Update README.md 2017-07-21 15:47:37 +02:00
README.modules consistently lowercase "dracut" 2012-10-10 14:15:11 +02:00
README.testsuite Drop dependency on bridge-utils 2017-02-14 14:10:24 +01:00
TODO TODO: remove some items 2016-11-03 15:05:36 +01:00
configure configure: don't hardcode pkg-config 2016-05-04 10:18:54 +02:00
dracut-bash-completion.sh fix typo 2017-09-05 01:26:31 +02:00
dracut-catimages.8.asc replace xml documentation with asciidoc 2012-03-14 15:48:33 +01:00
dracut-catimages.sh remove all vim and emacs code format comments 2014-08-29 13:38:47 +02:00
dracut-functions.sh Add early microcode support for AMD family 16h 2017-07-29 00:19:19 +01:00
dracut-init.sh dracut-init.sh: check for file $DRACUT_KERNEL_MODALIASES 2017-07-07 15:59:31 +02:00
dracut-initramfs-restore.sh add support for Zstandard 2017-09-05 01:23:38 +02:00
dracut-logger.sh dracut.sh: only create one TMPDIR 2015-11-25 14:21:33 +01:00
dracut.8.asc add support for Zstandard 2017-09-05 01:23:38 +02:00
dracut.asc Correct path for UEFI stub 2017-03-20 11:43:04 +01:00
dracut.bootup.7.asc documentation: line wrap 2014-01-13 09:51:04 +01:00
dracut.cmdline.7.asc 95zfcp_rules: simplified rd.zfcp commandline for NPIV 2017-06-23 21:27:48 +02:00
dracut.conf dracut.conf: remove example parameters 2015-07-09 15:36:25 +02:00
dracut.conf.5.asc add support for Zstandard 2017-09-05 01:23:38 +02:00
dracut.css Doc: cleanup, extend and split and reuse 2013-10-08 15:13:12 +02:00
dracut.logrotate dracut.logrotate: remove "yearly" 2011-07-20 17:21:02 +02:00
dracut.modules.7.asc dracut.modules.7.asc: correct filename parse-instmodpost.sh in documentation 2017-01-03 10:06:38 -05:00
dracut.png dracut.png: Optimize with zopflipng -m 2016-07-07 13:54:47 +03:00
dracut.sh add support for Zstandard 2017-09-05 01:23:38 +02:00
dracut.spec dracut.spec: add support for builds without dist-tag 2017-08-11 14:13:02 +02:00
dracut.svg added dracut logo 2010-12-02 17:13:04 +01:00
dracut.usage.asc man page: changed grub.conf to grub2.cfg 2015-11-11 15:47:46 +01:00
git2spec.pl dracut.spec: add support for builds without dist-tag 2017-08-11 14:13:02 +02:00
lsinitrd-bash-completion.sh remove all vim and emacs code format comments 2014-08-29 13:38:47 +02:00
lsinitrd.1.asc lsinitrd: add "--unpack" to lsinitrd 2016-03-17 14:45:24 +01:00
lsinitrd.sh add support for Zstandard 2017-09-05 01:23:38 +02:00
mkinitrd-dracut.sh mkinitrd-dracut.sh: removed trailing space in comment 2013-10-07 17:25:58 +02:00
mkinitrd-suse.8.asc man: make the -k option clear using mkinitrd 2016-12-02 14:32:09 +08:00
mkinitrd-suse.sh mkinitrd-suse.sh: Fix prefix calculation 2017-04-25 15:30:13 +02:00
mkinitrd.8.asc documentation: line wrap 2014-01-13 09:51:04 +01:00
profile.py profile.py: do not count negative timestamp differences 2012-06-29 12:41:25 +02:00

README.md

dracut - master branch

dracut is an initramfs infrastructure.

CentOS CI

Build Status

  • Test 01: Test 01
  • Test 02: Test 02
  • Test 03: Test 03
  • Test 04: Test 04
  • Test 10: Test 10
  • Test 11: Test 11
  • Test 12: Test 12
  • Test 13: Test 13
  • Test 14: Test 14
  • Test 15: Test 15
  • Test 16: Test 16
  • Test 17: Test 17
  • Test 20: Test 20
  • Test 30: Test 30
  • Test 40: Test 40
  • Test 50: Test 50
  • Test 70: Test 70