03-27-2019, 10:47 PM
Setting kernel command line arguments with Fedora 30
<div><p>Adding options to the kernel command line is a common task when debugging or experimenting with the kernel. The upcoming Fedora 30 release made a change to use Bootloader Spec (<a href="https://fedoraproject.org/wiki/Changes/BootLoaderSpecByDefault">BLS</a>). Depending on how you are used to modifying kernel command line options, your workflow may now change. Read on for more information.</p>
<p> <span id="more-25616"></span> </p>
<p>To determine if your system is running with BLS or the older layout, look in the file </p>
<div class="codecolorer-container text default" style="overflow:auto;border:1px solid #9F9F9F;width:435px">
<div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace">/etc/default/grub</div>
</div>
<p> If you see </p>
<div class="codecolorer-container text default" style="overflow:auto;border:1px solid #9F9F9F;width:435px">
<div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace">GRUB_ENABLE_BLSCFG=true</div>
</div>
<p> in there, you are running with the BLS setup and you may need to change how you set kernel command line arguments.</p>
<p>If you only want to modify a single kernel entry (for example, to temporarily work around a display problem) you can use a grubby command</p>
<pre class="wp-block-preformatted">$ grubby --update-kernel /boot/vmlinuz-5.0.1-300.fc30.x86_64 --args="amdgpu.dc=0"<br /></pre>
<p>To remove a kernel argument, you can use the </p>
<div class="codecolorer-container text default" style="overflow:auto;border:1px solid #9F9F9F;width:435px">
<div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace">–remove-args</div>
</div>
<p>
argument to grubby</p>
<pre class="wp-block-preformatted">$ grubby --update-kernel /boot/vmlinuz-5.0.1-300.fc30.x86_64 --remove-args="amdgpu.dc=0"</pre>
<p>If there is an option that should be added to every kernel command line (for example, you always want to disable the use of the rdrand instruction for random number generation) you can run a grubby command:</p>
<pre class="wp-block-preformatted">$ grubby --update-kernel=ALL --args="nordrand"</pre>
<p>This will update the command line of all kernel entries and save the option to the saved kernel command line for future entries.</p>
<p>If you later want to remove the option from all kernels, you can again use </p>
<div class="codecolorer-container text default" style="overflow:auto;border:1px solid #9F9F9F;width:435px">
<div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace">–remove-args</div>
</div>
<p> with </p>
<div class="codecolorer-container text default" style="overflow:auto;border:1px solid #9F9F9F;width:435px">
<div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace">–update-kernel=ALL</div>
</div>
<pre class="wp-block-preformatted">$ grubby --update-kernel=ALL --remove-args="nordrand"<p></p></pre>
</div>
<div><p>Adding options to the kernel command line is a common task when debugging or experimenting with the kernel. The upcoming Fedora 30 release made a change to use Bootloader Spec (<a href="https://fedoraproject.org/wiki/Changes/BootLoaderSpecByDefault">BLS</a>). Depending on how you are used to modifying kernel command line options, your workflow may now change. Read on for more information.</p>
<p> <span id="more-25616"></span> </p>
<p>To determine if your system is running with BLS or the older layout, look in the file </p>
<div class="codecolorer-container text default" style="overflow:auto;border:1px solid #9F9F9F;width:435px">
<div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace">/etc/default/grub</div>
</div>
<p> If you see </p>
<div class="codecolorer-container text default" style="overflow:auto;border:1px solid #9F9F9F;width:435px">
<div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace">GRUB_ENABLE_BLSCFG=true</div>
</div>
<p> in there, you are running with the BLS setup and you may need to change how you set kernel command line arguments.</p>
<p>If you only want to modify a single kernel entry (for example, to temporarily work around a display problem) you can use a grubby command</p>
<pre class="wp-block-preformatted">$ grubby --update-kernel /boot/vmlinuz-5.0.1-300.fc30.x86_64 --args="amdgpu.dc=0"<br /></pre>
<p>To remove a kernel argument, you can use the </p>
<div class="codecolorer-container text default" style="overflow:auto;border:1px solid #9F9F9F;width:435px">
<div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace">–remove-args</div>
</div>
<p>
argument to grubby</p>
<pre class="wp-block-preformatted">$ grubby --update-kernel /boot/vmlinuz-5.0.1-300.fc30.x86_64 --remove-args="amdgpu.dc=0"</pre>
<p>If there is an option that should be added to every kernel command line (for example, you always want to disable the use of the rdrand instruction for random number generation) you can run a grubby command:</p>
<pre class="wp-block-preformatted">$ grubby --update-kernel=ALL --args="nordrand"</pre>
<p>This will update the command line of all kernel entries and save the option to the saved kernel command line for future entries.</p>
<p>If you later want to remove the option from all kernels, you can again use </p>
<div class="codecolorer-container text default" style="overflow:auto;border:1px solid #9F9F9F;width:435px">
<div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace">–remove-args</div>
</div>
<p> with </p>
<div class="codecolorer-container text default" style="overflow:auto;border:1px solid #9F9F9F;width:435px">
<div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace">–update-kernel=ALL</div>
</div>
<pre class="wp-block-preformatted">$ grubby --update-kernel=ALL --remove-args="nordrand"<p></p></pre>
</div>