# Mender image doesn't boot in quiet mode

**URL:** https://hub.mender.io/t/mender-image-doesnt-boot-in-quiet-mode/3046
**Category:** General Discussions
**Tags:** x86, x86-grub
**Created:** [January 6, 2021, 6:04pm UTC](https://hub.mender.io/t/mender-image-doesnt-boot-in-quiet-mode/3046 "2021-01-06T18:04:58Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![Rohita83](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/rohita83/32/436_2.png) [@Rohita83](https://hub.mender.io/u/Rohita83)
#### Post date: [January 6, 2021, 6:04pm UTC](https://hub.mender.io/t/mender-image-doesnt-boot-in-quiet-mode/3046/1 "2021-01-06T18:04:58Z")

</div>

Hi,  
In order to boot and shutdown mender image in quiet mode I added “quiet” parameter in console\_bootargs in grub.cfg file and rebooted system.  
But It doesn’t show any effect.  
I also tried “splash” parameter to display splash screen but that also not working.

Please find below code of my grub.cfg file,

# Start of ---------- 00\_mender\_grubenv\_defines\_grub.cfg ----------

mender\_rootfsa\_part=2  
mender\_rootfsb\_part=3  
mender\_kernel\_root\_base=/dev/sda  
grub\_storage=${root}  
echo “showing grub\_storage”  
if [“$grub\_storage” == “hd0,msdos1”]; then  
mender\_grub\_storage\_device=hd0  
elif [“$grub\_storage” == “hd1,msdos1”]; then  
mender\_grub\_storage\_device=hd1  
elif [“$grub\_storage” == “hd2,msdos1”]; then  
mender\_grub\_storage\_device=hd2  
elif [“$grub\_storage” == “hd3,msdos1”]; then  
mender\_grub\_storage\_device=hd3  
elif [“$grub\_storage” == “hd4,msdos1”]; then  
mender\_grub\_storage\_device=hd4  
elif [“$grub\_storage” == “hd5,msdos1”]; then  
mender\_grub\_storage\_device=hd5  
elif [“$grub\_storage” == “hd6,msdos1”]; then  
mender\_grub\_storage\_device=hd6  
elif [“$grub\_storage” == “hd7,msdos1”]; then  
mender\_grub\_storage\_device=hd7  
fi  
kernel\_imagetype=vmlinuz-5.3.0-51-generic  
initrd\_imagetype=initrd.img-5.3.0-51-generic  
kernel\_devicetree=kernel.dtb

# End of ---------- 00\_mender\_grubenv\_defines\_grub.cfg ----------

# Start of ---------- 01\_console\_bootargs\_grub.cfg ----------

**set console\_bootargs="quiet splash console=tty0,115200n8 console=ttyS0,115200n8 console=ttyO0,115200n8 console=ttyAMA0,115200n8"**

# End of ---------- 01\_console\_bootargs\_grub.cfg ----------

# Start of ---------- 05\_mender\_setup\_grub.cfg ----------

# See the fw\_printenv script for how this works.

function maybe\_pause {  
# By default we do nothing. debug-pause PACKAGECONFIG replaces this so we  
# can pause at strategic places.  
echo  
}

# Load environment.

MENDER\_ENV1={prefix}/mender\_grubenv1/env MENDER\_ENVPREFIX1={prefix}/mender\_grubenv1/  
MENDER\_LOCK1={prefix}/mender\_grubenv1/lock MENDER\_LOCKSUM1={prefix}/mender\_grubenv1/lock.sha256sum  
MENDER\_ENV2={prefix}/mender\_grubenv2/env MENDER\_ENVPREFIX2={prefix}/mender\_grubenv2/  
MENDER\_LOCK2={prefix}/mender\_grubenv2/lock MENDER\_LOCKSUM2={prefix}/mender\_grubenv2/lock.sha256sum

function mender\_check\_and\_restore\_env {  
if ! hashsum --hash sha256 --prefix {MENDER\_ENVPREFIX2} --check {MENDER\_LOCKSUM2}; then  
load\_env --skip-sig --file {MENDER\_ENV1} bootcount mender\_boot\_part upgrade\_available save\_env --file {MENDER\_ENV2} bootcount mender\_boot\_part upgrade\_available  
editing=0  
save\_env --file {MENDER\_LOCK2} editing if ! hashsum --hash sha256 --prefix {MENDER\_ENVPREFIX2} --check {MENDER\_LOCKSUM2}; then echo "Environment 2 still corrupt after attempted restore. Halting." halt fi elif ! hashsum --hash sha256 --prefix {MENDER\_ENVPREFIX1} --check {MENDER\_LOCKSUM1}; then load\_env --skip-sig --file {MENDER\_ENV2} bootcount mender\_boot\_part upgrade\_available  
save\_env --file {MENDER\_ENV1} bootcount mender\_boot\_part upgrade\_available editing=0 save\_env --file {MENDER\_LOCK1} editing  
if ! hashsum --hash sha256 --prefix {MENDER\_ENVPREFIX1} --check {MENDER\_LOCKSUM1}; then  
echo “Environment 1 still corrupt after attempted restore. Halting.”  
halt  
fi  
fi  
}

function mender\_save\_env {  
# Save redundant environment.  
editing=1  
save\_env --file {MENDER\_LOCK2} editing save\_env --file {MENDER\_ENV2} bootcount mender\_boot\_part upgrade\_available  
editing=0  
save\_env --file ${MENDER\_LOCK2} editing

```
editing=1
save_env --file ${MENDER_LOCK1} editing
save_env --file ${MENDER_ENV1} bootcount mender_boot_part upgrade_available
editing=0
save_env --file ${MENDER_LOCK1} editing

```

}

function mender\_check\_grubenv\_valid {  
if [“{mender\_boot\_part}" != "{mender\_rootfsa\_part}” -a “{mender\_boot\_part}" != "{mender\_rootfsb\_part}”]; then  
return 1  
fi

```
if ["${bootcount}" != "0" -a "${bootcount}" != "1"]; then
    return 1
fi

if ["${upgrade_available}" != "0" -a "${upgrade_available}" != "1"]; then
    return 1
fi

return 0

```

}

mender\_check\_and\_restore\_env

# Now load environment.

# Skipping signatures?? Yes, because these values will change over time, so they

# cannot be signed. There is also no checksum facility that will work for

# changing values. Instead we check their content for validity.

load\_env --skip-sig --file ${MENDER\_ENV1} bootcount mender\_boot\_part upgrade\_available

if ! mender\_check\_grubenv\_valid; then  
if [“${check\_signatures}” == “enforce”]; then  
echo “Unverified environment and signatures enabled. Halting.”  
halt  
fi  
fi

if [“{upgrade\_available}" = "1"]; then if ["{bootcount}” != “0”]; then  
echo “Rolling back…”  
if [“{mender\_boot\_part}" = "{mender\_rootfsa\_part}”]; then  
mender\_boot\_part="{mender\_rootfsb\_part}" else mender\_boot\_part="{mender\_rootfsa\_part}"  
fi  
upgrade\_available=0  
bootcount=0  
else  
echo “Booting new update…”  
bootcount=1  
fi

```
mender_save_env

```

fi

# End of ---------- 05\_mender\_setup\_grub.cfg ----------

# Start of ---------- 10\_bootargs\_grub.cfg ----------

set bootargs="{bootargs} {console\_bootargs}"

# End of ---------- 10\_bootargs\_grub.cfg ----------

# Start of ---------- 90\_mender\_boot\_grub.cfg ----------

if test -e ({mender\_grub\_storage\_device},gpt{mender\_boot\_part})/; then  
ptable\_type=gpt  
else  
ptable\_type=msdos  
fi

if test -n "{kernel\_devicetree}"; then if test -e ({mender\_grub\_storage\_device},{ptable\_type}{mender\_boot\_part})/boot/{kernel\_devicetree}; then devicetree ({mender\_grub\_storage\_device},{ptable\_type}{mender\_boot\_part})/boot/${kernel\_devicetree}  
fi  
fi

if [test -n “{mender\_rootfsa\_uuid}" -a test -n "{mender\_rootfsb\_uuid}”]; then  
if [“{mender\_boot\_part}" = "{mender\_rootfsa\_part}”]; then  
mender\_root=“PARTUUID={mender\_rootfsa\_uuid}" elif ["{mender\_boot\_part}” = “{mender\_rootfsb\_part}"]; then mender\_root="PARTUUID={mender\_rootfsb\_uuid}”  
fi  
else  
mender\_root="{mender\_kernel\_root\_base}{mender\_boot\_part}"  
fi

if linux ({mender\_grub\_storage\_device},{ptable\_type}{mender\_boot\_part})/boot/{kernel\_imagetype} root={mender\_root} {bootargs}; then  
if test -e ({mender\_grub\_storage\_device},{ptable\_type}{mender\_boot\_part})/boot/{initrd\_imagetype}; then  
initrd ({mender\_grub\_storage\_device},{ptable\_type}{mender\_boot\_part})/boot/{initrd\_imagetype}  
fi  
maybe\_pause “Pausing before booting.”  
boot  
fi  
maybe\_pause “Pausing after failed boot.”

# End of ---------- 90\_mender\_boot\_grub.cfg ----------

# Start of ---------- 95\_mender\_try\_to\_recover\_grub.cfg ----------

if [“${upgrade\_available}” == “1”]; then  
reboot  
fi

# End of ---------- 95\_mender\_try\_to\_recover\_grub.cfg ----------

@drewmoseley any idea why it is not working for me ?
