]>
Commit | Line | Data |
---|---|---|
b6c89768 HH |
1 | To create a initramfs image, the most simple command is: |
2 | ---- | |
3 | # dracut | |
4 | ---- | |
5 | ||
6 | This will generate a general purpose initramfs image, with all possible | |
7 | functionality resulting of the combination of the installed dracut modules and | |
8 | system tools. The image is /boot/initramfs-_++<kernel version>++_.img and | |
9 | contains the kernel modules of the currently active kernel with version | |
10 | _++<kernel version>++_. | |
11 | ||
12 | If the initramfs image already exists, dracut will display an error message, and | |
13 | to overwrite the existing image, you have to use the --force option. | |
14 | ---- | |
15 | # dracut --force | |
16 | ---- | |
17 | ||
18 | If you want to specify another filename for the resulting image you would issue | |
19 | a command like: | |
20 | ---- | |
21 | # dracut foobar.img | |
22 | ---- | |
23 | ||
24 | To generate an image for a specific kernel version, the command would be: | |
25 | ---- | |
26 | # dracut foobar.img 2.6.40-1.rc5.f20 | |
27 | ---- | |
28 | ||
29 | A shortcut to generate the image at the default location for a specific kernel | |
30 | version is: | |
31 | ---- | |
32 | # dracut --kver 2.6.40-1.rc5.f20 | |
33 | ---- | |
34 | ||
35 | If you want to create lighter, smaller initramfs images, you may want to specify | |
36 | the --hostonly or -H option. Using this option, the resulting image will | |
37 | contain only those dracut modules, kernel modules and filesystems, which are | |
38 | needed to boot this specific machine. This has the drawback, that you can't put | |
39 | the disk on another controller or machine, and that you can't switch to another | |
40 | root filesystem, without recreating the initramfs image. The usage of the | |
41 | --hostonly option is only for experts and you will have to keep the broken | |
42 | pieces. At least keep a copy of a general purpose image (and corresponding | |
43 | kernel) as a fallback to rescue your system. | |
44 | ||
45 | === Inspecting the Contents | |
ef9ddb91 HH |
46 | To see the contents of the image created by dracut, you can use the lsinitrd |
47 | tool. | |
b6c89768 HH |
48 | ---- |
49 | # lsinitrd | less | |
50 | ---- | |
51 | ||
52 | To display the contents of a file in the initramfs also use the lsinitrd tool: | |
53 | ---- | |
54 | # lsinitrd -f /etc/ld.so.conf | |
55 | include ld.so.conf.d/*.conf | |
56 | ---- | |
57 | ||
58 | === Adding dracut Modules | |
59 | Some dracut modules are turned off by default and have to be activated manually. | |
60 | You can do this by adding the dracut modules to the configuration file | |
61 | _/etc/dracut.conf_ or _/etc/dracut.conf.d/myconf.conf_. See *dracut.conf*(5). | |
62 | You can also add dracut modules on the command line | |
63 | by using the -a or --add option: | |
64 | ---- | |
65 | # dracut --add bootchart initramfs-bootchart.img | |
66 | ---- | |
67 | ||
68 | To see a list of available dracut modules, use the --list-modules option: | |
69 | ---- | |
70 | # dracut --list-modules | |
71 | ---- | |
72 | ||
73 | === Omitting dracut Modules | |
74 | Sometimes you don't want a dracut module to be included for reasons of speed, | |
75 | size or functionality. To do this, either specify the omit_dracutmodules | |
76 | variable in the _dracut.conf_ or _/etc/dracut.conf.d/myconf.conf_ configuration | |
77 | file (see *dracut.conf*(5)), or use the -o or --omit option | |
78 | on the command line: | |
79 | ---- | |
80 | # dracut -o "multipath lvm" no-multipath-lvm.img | |
81 | ---- | |
82 | ||
83 | === Adding Kernel Modules | |
84 | If you need a special kernel module in the initramfs, which is not | |
85 | automatically picked up by dracut, you have the use the --add-drivers option | |
86 | on the command line or the drivers vaiable in the _/etc/dracut.conf_ | |
87 | or _/etc/dracut.conf.d/myconf.conf_ configuration file (see *dracut.conf*(5)): | |
88 | ---- | |
89 | # dracut --add-drivers mymod initramfs-with-mymod.img | |
90 | ---- | |
91 | ||
92 | === Boot parameters | |
93 | An initramfs generated without the "hostonly" mode, does not contain any system | |
94 | configuration files (except for some special exceptions), so the configuration | |
95 | has to be done on the kernel command line. With this flexibility, you can easily | |
96 | boot from a changed root partition, without the need to recompile the initramfs | |
97 | image. So, you could completly change your root partition (move it inside a md | |
98 | raid with encryption and LVM on top), as long as you specify the correct | |
99 | filesystem LABEL or UUID on the kernel command line for your root device, dracut | |
100 | will find it and boot from it. | |
101 | ||
6e53596c SD |
102 | The kernel command line usually can be configured in _/boot/grub/grub.conf_ or |
103 | _/boot/grub2/grub.cfg_, if grub is your bootloader and it also can be edited in | |
104 | the real boot process in the grub menu. | |
b6c89768 HH |
105 | |
106 | The kernel command line can also be provided by the dhcp server with the | |
107 | root-path option. See <<NetworkBoot>>. | |
108 | ||
ef9ddb91 HH |
109 | For a full reference of all kernel command line parameters, |
110 | see *dracut.cmdline*(5). | |
b6c89768 | 111 | |
ef9ddb91 HH |
112 | To get a quick start for the suitable kernel command line on your system, |
113 | use the __--print-cmdline__ option: | |
b6c89768 HH |
114 | ---- |
115 | # dracut --print-cmdline | |
116 | root=UUID=8b8b6f91-95c7-4da2-831b-171e12179081 rootflags=rw,relatime,discard,data=ordered rootfstype=ext4 | |
117 | ---- | |
118 | ||
119 | ==== Specifying the root Device | |
120 | This is the only option dracut really needs to boot from your root partition. | |
121 | Because your root partition can live in various environments, there are a lot of | |
122 | formats for the root= option. The most basic one is root=_++<path to device | |
123 | node>++_: | |
124 | ---- | |
125 | root=/dev/sda2 | |
126 | ---- | |
127 | ||
128 | Because device node names can change, dependent on the drive ordering, you are | |
129 | encouraged to use the filesystem identifier (UUID) or filesystem label (LABEL) | |
130 | to specify your root partition: | |
131 | ---- | |
132 | root=UUID=19e9dda3-5a38-484d-a9b0-fa6b067d0331 | |
133 | ---- | |
134 | ||
135 | or | |
136 | ||
137 | ---- | |
138 | root=LABEL=myrootpartitionlabel | |
139 | ---- | |
140 | ||
141 | To see all UUIDs or LABELs on your system, do: | |
142 | ---- | |
143 | # ls -l /dev/disk/by-uuid | |
144 | ---- | |
145 | ||
146 | or | |
147 | ||
148 | ---- | |
149 | # ls -l /dev/disk/by-label | |
150 | ---- | |
151 | ||
152 | If your root partition is on the network see <<NetworkBoot>>. | |
153 | ||
154 | ==== Keyboard Settings | |
155 | If you have to input passwords for encrypted disk volumes, you might want to set | |
156 | the keyboard layout and specify a display font. | |
157 | ||
158 | A typical german kernel command would contain: | |
159 | ---- | |
160 | rd.vconsole.font=latarcyrheb-sun16 rd.vconsole.keymap=de-latin1-nodeadkeys rd.locale.LANG=de_DE.UTF-8 | |
161 | ---- | |
162 | ||
163 | Setting these options can override the setting stored on your system, if you use | |
164 | a modern init system, like systemd. | |
165 | ||
166 | ==== Blacklisting Kernel Modules | |
167 | Sometimes it is required to prevent the automatic kernel module loading of a | |
168 | specific kernel module. To do this, just add rd.blacklist=_++<kernel module | |
169 | name>++_, with _++<kernel module name>++_ not containing the _.ko_ | |
170 | suffix, to the kernel command line. For example: | |
171 | ---- | |
172 | rd.driver.blacklist=mptsas rd.driver.blacklist=nouveau | |
173 | ---- | |
174 | ||
175 | The option can be specified multiple times on the kernel command line. | |
176 | ||
177 | ==== Speeding up the Boot Process | |
178 | If you want to speed up the boot process, you can specify as much information | |
179 | for dracut on the kernel command as possible. For example, you can tell dracut, | |
180 | that you root partition is not on a LVM volume or not on a raid partition, or | |
181 | that it lives inside a specific crypto LUKS encrypted volume. By default, dracut | |
182 | searches everywhere. A typical dracut kernel command line for a plain primary or | |
183 | logical partition would contain: | |
184 | ---- | |
185 | rd.luks=0 rd.lvm=0 rd.md=0 rd.dm=0 | |
186 | ---- | |
187 | ||
ef9ddb91 HH |
188 | This turns off every automatic assembly of LVM, MD raids, DM raids and |
189 | crypto LUKS. | |
b6c89768 HH |
190 | |
191 | Of course, you could also omit the dracut modules in the initramfs creation | |
192 | process, but then you would lose the posibility to turn it on on demand. | |
193 | ||
194 | ||
195 | [[Injecting]] | |
196 | === Injecting custom Files | |
197 | To add your own files to the initramfs image, you have several possibilities. | |
198 | ||
ef9ddb91 HH |
199 | The --include option let you specify a source path and a target path. |
200 | For example | |
b6c89768 HH |
201 | ---- |
202 | # dracut --include cmdline-preset /etc/cmdline.d/mycmdline.conf initramfs-cmdline-pre.img | |
203 | ---- | |
204 | will create an initramfs image, where the file cmdline-preset will be copied | |
ef9ddb91 HH |
205 | inside the initramfs to _/etc/cmdline.d/mycmdline.conf_. --include can only |
206 | be specified once. | |
b6c89768 HH |
207 | |
208 | ||
209 | ---- | |
210 | # mkdir -p rd.live.overlay/etc/cmdline.d | |
211 | # mkdir -p rd.live.overlay/etc/conf.d | |
e3250e20 | 212 | # echo "ip=dhcp" >> rd.live.overlay/etc/cmdline.d/mycmdline.conf |
b6c89768 HH |
213 | # echo export FOO=testtest >> rd.live.overlay/etc/conf.d/testvar.conf |
214 | # echo export BAR=testtest >> rd.live.overlay/etc/conf.d/testvar.conf | |
215 | # tree rd.live.overlay/ | |
216 | rd.live.overlay/ | |
217 | `-- etc | |
218 | |-- cmdline.d | |
219 | | `-- mycmdline.conf | |
220 | `-- conf.d | |
221 | `-- testvar.conf | |
222 | ||
223 | # dracut --include rd.live.overlay / initramfs-rd.live.overlay.img | |
224 | ---- | |
225 | ||
226 | This will put the contents of the rd.live.overlay directory into the root of the | |
227 | initramfs image. | |
228 | ||
229 | The --install option let you specify several files, which will get installed in | |
230 | the initramfs image at the same location, as they are present on initramfs | |
231 | creation time. | |
232 | ||
233 | ||
234 | ---- | |
235 | # dracut --install 'strace fsck.ext3 ssh' initramfs-dbg.img | |
236 | ---- | |
237 | ||
238 | This will create an initramfs with the strace, fsck.ext3 and ssh executables, | |
239 | together with the libraries needed to start those. The --install option can be | |
240 | specified multiple times. | |
241 | ||
242 | ||
243 | [[NetworkBoot]] | |
244 | === Network Boot | |
245 | ||
246 | If your root partition is on a network drive, you have to have the network | |
247 | dracut modules installed to create a network aware initramfs image. | |
248 | ||
249 | On a Red Hat Enterprise Linux or Fedora system, this means, you have to install | |
250 | the _dracut-network_ rpm package: | |
251 | ||
252 | ||
253 | ---- | |
254 | # yum install dracut-network | |
255 | ---- | |
256 | ||
257 | The resulting initramfs image can be served by a boot manager residing on your | |
258 | local hard drive or it can be served by a PXE/TFTP server. | |
259 | ||
260 | How to setup your PXE/TFTP server can be found in the | |
261 | http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Storage_Administration_Guide/[Red | |
11b5db88 HH |
262 | Hat Enterprise Linux 6 Storage Administration Guide] |
263 | or http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Storage_Administration_Guide/[Red | |
264 | Hat Enterprise Linux 7 Storage Administration Guide]. | |
b6c89768 | 265 | |
e3250e20 | 266 | If you specify ip=dhcp on the kernel command line, then dracut asks a dhcp |
b6c89768 HH |
267 | server about the ip adress for the machine. The dhcp server can also serve an |
268 | additional root-path, which will set the root device for dracut. With this | |
269 | mechanism, you have static configuration on your client machine and a | |
270 | centralized boot configuration on your TFTP/DHCP server. If you can't pass a | |
ef9ddb91 HH |
271 | kernel command line, then you can inject _/etc/cmdline.d/mycmdline.conf_, with a |
272 | method described in <<Injecting>>. | |
b6c89768 HH |
273 | |
274 | ==== Reducing the Image Size | |
275 | ||
276 | To reduce the size of the initramfs, you should create it with by ommitting all | |
277 | dracut modules, which you know, you don't need to boot the machine. | |
278 | ||
279 | You can also specify the exact dracut and kernel modules to produce a very tiny | |
280 | initramfs image. | |
281 | ||
282 | For example for a NFS image, you would do: | |
283 | ||
284 | ||
285 | ---- | |
286 | # dracut -m "nfs network base" initramfs-nfs-only.img | |
287 | ---- | |
288 | ||
289 | Then you would boot from this image with your target machine and reduce the size | |
290 | once more by creating it on the target machine with the --host-only option: | |
291 | ||
292 | ||
293 | ---- | |
294 | # dracut -m "nfs network base" --host-only initramfs-nfs-host-only.img | |
295 | ---- | |
296 | ||
297 | This will reduce the size of the initramfs image significantly. | |
298 | ||
299 | ||
300 | == Troubleshooting | |
301 | ||
302 | If the boot process does not succeed, you have several options to debug the | |
303 | situation. Some of the basic operations are covered here. For more information | |
304 | you should also visit: | |
305 | http://fedoraproject.org/wiki/How_to_debug_Dracut_problems | |
306 | ||
307 | ||
308 | [[identifying-your-problem-area]] | |
309 | === Identifying your problem area | |
310 | . Remove ''rhgb'' and ''quiet'' from the kernel command line | |
311 | . Add ''rd.shell'' to the kernel command line. This will present a shell should | |
312 | dracut be unable to locate your root device | |
313 | . Add ''rd.shell rd.debug log_buf_len=1M'' to the kernel command line so that | |
314 | dracut shell commands are printed as they are executed | |
315 | . The file /run/initramfs/rdsosreport.txt is generated, | |
ef9ddb91 HH |
316 | which contains all the logs and the output of all significant tools, which are |
317 | mentioned later. | |
b6c89768 | 318 | |
ef9ddb91 HH |
319 | If you want to save that output, simply mount /boot by hand or insert an USB |
320 | stick and mount that. Then you can store the output for later inspection. | |
b6c89768 HH |
321 | |
322 | [[information-to-include-in-your-report]] | |
323 | === Information to include in your report | |
324 | ||
325 | [[all-bug-reports]] | |
326 | ==== All bug reports | |
327 | In all cases, the following should be mentioned and attached to your bug report: | |
328 | ||
329 | * The exact kernel command-line used. Typically from the bootloader | |
330 | configuration file (e.g. _/etc/grub.conf_) or from _/proc/cmdline_. | |
331 | * A copy of your disk partition information from _/etc/fstab_, which might be | |
332 | obtained booting an old working initramfs or a rescue medium. | |
333 | * Turn on dracut debugging (see _the 'debugging dracut' section_), and attach | |
334 | the file /run/initramfs/rdsosreport.txt. | |
335 | * If you use a dracut configuration file, please include _/etc/dracut.conf_ and | |
336 | all files in _/etc/dracut.conf.d/*.conf_ | |
337 | ||
338 | [[network-root-device-related-problems]] | |
339 | ==== Network root device related problems | |
340 | This section details information to include when experiencing problems on a | |
341 | system whose root device is located on a network attached volume (e.g. iSCSI, | |
342 | NFS or NBD). As well as the information from <<all-bug-reports>>, include the | |
343 | following information: | |
344 | ||
345 | ||
346 | * Please include the output of | |
347 | + | |
348 | ---- | |
349 | # /sbin/ifup <interfacename> | |
350 | # ip addr show | |
351 | ---- | |
352 | ||
353 | [[debugging-dracut]] | |
354 | === Debugging dracut | |
355 | ||
356 | ||
357 | [[configure-a-serial-console]] | |
358 | ==== Configure a serial console | |
359 | ||
360 | Successfully debugging dracut will require some form of console | |
361 | logging during the system boot. This section documents configuring a | |
362 | serial console connection to record boot messages. | |
363 | ||
364 | . First, enable serial console output for both the kernel and the bootloader. | |
365 | . Open the file _/etc/grub.conf_ for editing. Below the line ''timeout=5'', add | |
366 | the following: | |
367 | + | |
368 | ---- | |
369 | serial --unit=0 --speed=9600 | |
370 | terminal --timeout=5 serial console | |
371 | ---- | |
372 | + | |
373 | . Also in _/etc/grub.conf_, add the following boot arguemnts to the ''kernel'' | |
374 | line: | |
375 | + | |
376 | ---- | |
377 | console=tty0 console=ttyS0,9600 | |
378 | ---- | |
379 | + | |
380 | . When finished, the _/etc/grub.conf_ file should look similar to the example | |
381 | below. | |
382 | + | |
383 | ---- | |
384 | default=0 | |
385 | timeout=5 | |
386 | serial --unit=0 --speed=9600 | |
387 | terminal --timeout=5 serial console | |
388 | title Fedora (2.6.29.5-191.fc11.x86_64) | |
389 | root (hd0,0) | |
390 | kernel /vmlinuz-2.6.29.5-191.fc11.x86_64 ro root=/dev/mapper/vg_uc1-lv_root console=tty0 console=ttyS0,9600 | |
391 | initrd /dracut-2.6.29.5-191.fc11.x86_64.img | |
392 | ---- | |
393 | + | |
394 | . More detailed information on how to configure the kernel for console output | |
395 | can be found at | |
396 | http://www.faqs.org/docs/Linux-HOWTO/Remote-Serial-Console-HOWTO.html#CONFIGURE-KERNEL. | |
397 | . Redirecting non-interactive output | |
398 | + | |
399 | -- | |
400 | NOTE: You can redirect all non-interactive output to _/dev/kmsg_ and the kernel | |
401 | will put it out on the console when it reaches the kernel buffer by doing | |
402 | ||
403 | ---- | |
404 | # exec >/dev/kmsg 2>&1 </dev/console | |
405 | ---- | |
406 | -- | |
407 | ||
408 | [[using-the-dracut-shell]] | |
409 | ==== Using the dracut shell | |
410 | ||
411 | dracut offers a shell for interactive debugging in the event dracut fails to | |
412 | locate your root filesystem. To enable the shell: | |
413 | ||
414 | . Add the boot parameter ''rd.shell'' to your bootloader configuration file | |
415 | (e.g. _/etc/grub.conf_) | |
416 | . Remove the boot arguments ''rhgb'' and ''quiet'' | |
417 | + | |
418 | A sample _/etc/grub.conf_ bootloader configuration file is listed below. | |
419 | + | |
420 | ---- | |
421 | default=0 | |
422 | timeout=5 | |
423 | serial --unit=0 --speed=9600 | |
424 | terminal --timeout=5 serial console | |
425 | title Fedora (2.6.29.5-191.fc11.x86_64) | |
426 | root (hd0,0) | |
427 | kernel /vmlinuz-2.6.29.5-191.fc11.x86_64 ro root=/dev/mapper/vg_uc1-lv_root console=tty0 rd.shell | |
428 | initrd /dracut-2.6.29.5-191.fc11.x86_64.img | |
429 | ---- | |
430 | + | |
ef9ddb91 HH |
431 | . If system boot fails, you will be dropped into a shell as seen in the example |
432 | below. | |
b6c89768 HH |
433 | + |
434 | ---- | |
435 | No root device found | |
436 | Dropping to debug shell. | |
437 | ||
438 | # | |
439 | ---- | |
440 | + | |
ef9ddb91 HH |
441 | . Use this shell prompt to gather the information requested above |
442 | (see <<all-bug-reports>>). | |
b6c89768 HH |
443 | |
444 | [[accessing-the-root-volume-from-the-dracut-shell]] | |
445 | ==== Accessing the root volume from the dracut shell | |
446 | From the dracut debug shell, you can manually perform the task of locating and | |
447 | preparing your root volume for boot. The required steps will depend on how your | |
448 | root volume is configured. Common scenarios include: | |
449 | ||
450 | * A block device (e.g. _/dev/sda7_) | |
451 | * A LVM logical volume (e.g. _/dev/VolGroup00/LogVol00_) | |
ef9ddb91 HH |
452 | * An encrypted device |
453 | (e.g. _/dev/mapper/luks-4d5972ea-901c-4584-bd75-1da802417d83_) | |
454 | * A network attached device | |
455 | (e.g. _netroot=iscsi:@192.168.0.4::3260::iqn.2009-02.org.example:for.all_) | |
b6c89768 HH |
456 | |
457 | The exact method for locating and preparing will vary. However, to continue with | |
458 | a successful boot, the objective is to locate your root volume and create a | |
459 | symlink _/dev/root_ which points to the file system. For example, the following | |
460 | example demonstrates accessing and booting a root volume that is an encrypted | |
461 | LVM Logical volume. | |
462 | ||
463 | . Inspect your partitions using parted | |
464 | + | |
465 | ---- | |
466 | # parted /dev/sda -s p | |
467 | Model: ATA HTS541060G9AT00 (scsi) | |
468 | Disk /dev/sda: 60.0GB | |
469 | Sector size (logical/physical): 512B/512B | |
470 | Partition Table: msdos | |
471 | Number Start End Size Type File system Flags | |
472 | 1 32.3kB 10.8GB 107MB primary ext4 boot | |
473 | 2 10.8GB 55.6GB 44.7GB logical lvm | |
474 | ---- | |
475 | + | |
476 | . You recall that your root volume was a LVM logical volume. Scan and activate | |
477 | any logical volumes. | |
478 | + | |
479 | ---- | |
480 | # lvm vgscan | |
481 | # lvm vgchange -ay | |
482 | ---- | |
483 | + | |
484 | . You should see any logical volumes now using the command blkid: | |
485 | + | |
486 | ---- | |
487 | # blkid | |
488 | /dev/sda1: UUID="3de247f3-5de4-4a44-afc5-1fe179750cf7" TYPE="ext4" | |
489 | /dev/sda2: UUID="Ek4dQw-cOtq-5MJu-OGRF-xz5k-O2l8-wdDj0I" TYPE="LVM2_member" | |
490 | /dev/mapper/linux-root: UUID="def0269e-424b-4752-acf3-1077bf96ad2c" TYPE="crypto_LUKS" | |
491 | /dev/mapper/linux-home: UUID="c69127c1-f153-4ea2-b58e-4cbfa9257c5e" TYPE="ext3" | |
492 | /dev/mapper/linux-swap: UUID="47b4d329-975c-4c08-b218-f9c9bf3635f1" TYPE="swap" | |
493 | ---- | |
494 | + | |
495 | . From the output above, you recall that your root volume exists on an encrypted | |
496 | block device. Following the guidance disk encryption guidance from the | |
497 | Installation Guide, you unlock your encrypted root volume. | |
498 | + | |
499 | ---- | |
500 | # UUID=$(cryptsetup luksUUID /dev/mapper/linux-root) | |
501 | # cryptsetup luksOpen /dev/mapper/linux-root luks-$UUID | |
502 | Enter passphrase for /dev/mapper/linux-root: | |
503 | Key slot 0 unlocked. | |
504 | ---- | |
505 | + | |
506 | . Next, make a symbolic link to the unlocked root volume | |
507 | + | |
508 | ---- | |
509 | # ln -s /dev/mapper/luks-$UUID /dev/root | |
510 | ---- | |
511 | + | |
512 | . With the root volume available, you may continue booting the system by exiting | |
513 | the dracut shell | |
514 | + | |
515 | ---- | |
516 | # exit | |
517 | ---- | |
518 | ||
519 | [[additional-dracut-boot-parameters]] | |
520 | ==== Additional dracut boot parameters | |
521 | For more debugging options, see *dracut.cmdline*(7). | |
522 | ||
523 | ||
524 | [[debugging-dracut-on-shutdown]] | |
525 | ==== Debugging dracut on shutdown | |
526 | ||
527 | To debug the shutdown sequence on systemd systems, you can _rd.break_ | |
528 | on _pre-shutdown_ or _shutdown_. | |
529 | ||
530 | To do this from an already booted system: | |
531 | ---- | |
532 | # mkdir -p /run/initramfs/etc/cmdline.d | |
e02a29e7 | 533 | # echo "rd.debug rd.break=pre-shutdown rd.break=shutdown" > /run/initramfs/etc/cmdline.d/debug.conf |
b6c89768 HH |
534 | # touch /run/initramfs/.need_shutdown |
535 | ---- | |
536 | ||
ef9ddb91 HH |
537 | This will give you a dracut shell after the system pivot'ed back in the |
538 | initramfs. | |
b6c89768 | 539 |