| Summary: | dracut shell doesn't start | ||
|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Jaroslav Škarvada <jskarvad> |
| Component: | dracut | Assignee: | dracut-maint |
| Status: | CLOSED NOTABUG | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
| Severity: | unspecified | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 20 | CC: | dracut-maint, fedora, harald, jonathan, jskarvad |
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | Bug Fix | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2014-04-02 08:39:17 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
|
Description
Jaroslav Škarvada
2013-11-15 13:33:01 UTC
Is this still a problem? It still doesn't work for me.
kernel-3.13.3-201.fc20.x86_64
dracut-034-64.git20131205.fc20.1.x86_64
# rpm -qV dracut
# dracut -v --force
Executing: /sbin/dracut -v --force
*** Including module: bash ***
*** Including module: i18n ***
*** Including module: ifcfg ***
*** Including module: drm ***
*** Including module: plymouth ***
*** Including module: crypt ***
*** Including module: dm ***
Skipping udev rule: 64-device-mapper.rules
Skipping udev rule: 60-persistent-storage-dm.rules
Skipping udev rule: 55-dm.rules
*** Including module: kernel-modules ***
*** Including module: lvm ***
Skipping udev rule: 64-device-mapper.rules
Skipping udev rule: 56-lvm.rules
Skipping udev rule: 60-persistent-storage-lvm.rules
*** Including module: resume ***
*** Including module: rootfs-block ***
*** Including module: terminfo ***
*** Including module: udev-rules ***
Skipping udev rule: 91-permissions.rules
*** Including module: systemd ***
*** Including module: usrmount ***
*** Including module: base ***
*** Including module: fs-lib ***
*** Including module: shutdown ***
*** Including modules done ***
*** Installing kernel module dependencies and firmware ***
*** Installing kernel module dependencies and firmware done ***
*** Resolving executable dependencies ***
*** Resolving executable dependencies done***
*** Pre-linking files ***
*** Pre-linking files done ***
*** Hardlinking files ***
*** Hardlinking files done ***
*** Stripping files ***
*** Stripping files done ***
*** Creating image file ***
*** Creating image file done ***
/boot/grub2/grub.cfg:
...
### BEGIN /etc/grub.d/10_linux ###
menuentry 'Fedora (3.13.3-201.fc20.x86_64) 20 (Heisenbug)' --class fedora --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-3512db8f-4023-4f48-9221-604fb07a73ea' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_msdos
insmod ext2
set root='hd0,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 eb5f3263-8b2c-4f42-ab54-57d3ad78c4d4
else
search --no-floppy --fs-uuid --set=root eb5f3263-8b2c-4f42-ab54-57d3ad78c4d4
fi
linux /vmlinuz-3.13.3-201.fc20.x86_64 root=/dev/mapper/vg_dhcp30156-lv_root ro console=tty0 console=ttyS0,115200 LANG=cs_CZ.UTF-8
initrd /initramfs-3.13.3-201.fc20.x86_64.img
}
....
# ll /boot/initramfs-3.13.3-201.fc20.x86_64.img
-rw-------. 1 root root 12249725 Feb 26 11:56 /boot/initramfs-3.13.3-201.fc20.x86_64.img
Timestamp match, so it gets regenerated.
# df | grep boot
/dev/sda1 487652 115479 342477 26% /boot
I am using encrypted LVM which includes the root.
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 149,1G 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 148,6G 0 part
└─luks-38babc64-c012-447d-b7ac-69c8877105a5 253:0 0 148,6G 0 crypt
├─vg_dhcp30156-lv_root 253:1 0 50G 0 lvm /
├─vg_dhcp30156-lv_swap 253:2 0 3,8G 0 lvm [SWAP]
└─vg_dhcp30156-lv_home 253:3 0 94,7G 0 lvm /home
When booting with the "rd.break rd.shell" it asks me for the password then continues for a while and then hangs with the dracut-pre-pivot warning:
dracut-pre-pivot [546] Warning: Break before switch_root
But no shell, the system doesn't respond to keyboard, only CTRL + ALT + DEL works to reboot the machine.
Could you provide me information how to debug this?
Does it work, if you add "plymouth.enable=0 rd.plymouth=0" ? (In reply to Harald Hoyer from comment #3) > Does it work, if you add "plymouth.enable=0 rd.plymouth=0" ? No, it seems to be worse. I tried: rd.break rd.shell plymouth.enable=0 rd.plymouth=0 this didn't ask me for the LUKS password and I didn't see the "pre-pivot" message. I have non-quiet boot and grub2 in text mode, i.e. there is the following line in my /etc/default/grub: GRUB_TERMINAL="console" I tried to add quiet to the kernel command line, so I tried: quiet rd.break rd.shell still no luck. With: quiet rd.break rd.shell plymouth.enable=0 rd.plymouth=0 I could only see: "booting a command list" and that was all. I tried to swap rd.break and rd.sheel, but no luck. Next, I am going to try to switch grub2 to the graphical mode. I figured it out, the following lines in /etc/default.d/grub are causing the problem: GRUB_TERMINAL="serial console" GRUB_SERIAL_COMMAND="serial --unit=0 --speed=115200" GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,115200" So I guess the dracut shell is shown on the serial console. I haven't verified it, because the serial line was not connected. I think this is bug in dracut, because kernel, systemd and grub has no problem with this "dual" configuration and if the serial line is disconnected everything is shown on tty0. dracut uses /dev/console . Can't change anything here. (In reply to Jaroslav Škarvada from comment #5) [..] > GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,115200" > > So I guess the dracut shell is shown on the serial console. I haven't > verified it, because the serial line was not connected. I think this is bug > in dracut, because kernel, systemd and grub has no problem with this "dual" > configuration and if the serial line is disconnected everything is shown on > tty0. I verified this with a connected serial console: with console=ttyS0,115200 put after console=tty0 the dracut shell is only displayed on the serial console. Note that the order of the commands matters, i.e. with `console=ttyS0,115200 console=tty0` the dracut shell is displayed on the system console - and the serial console only gets a copy the log messages. (this is documented in the kernel docs: the last console= option specifies the console that is connected to /dev/console) You would need to include something like getty or more of systemd into initramfs to get a dracut shell on both consoles. So I've created a small Dracut module (dracut-serial) that spawns gettys on both the system and the serial consoles. It also starts the password prompter (systemd-tty-ask-password-agent) on both consoles): https://github.com/gsauthof/dracut-serial Thus it helps in situations where one doesn't know a priori which console is available when the system boots and devices needs to be unlocked or the emergency shell is triggered. |