لینوکس و من

۱۱ مطلب در مهر ۱۳۹۵ ثبت شده است

یک بوت کاملا ساکت داشته باشیم

وقتی در لینوکس از طریق GRUB بوت میکنیم، حتی اگه چیزی مثل plymouth نصب باشه و هنگام بوت انیمیشن نشون بده، قبل از شروع بوت انیمیشن باز هم تعدادی پیام روی صفحه نشون داده میشه. برای اینکه جلوی نمایش این پیام ها رو هم بگیریم و حتی یک کاراکتر هم نشون داده نشه میتونیم کارهای زیر رو انجام بدیم:

یکی از مراحل در ویکی آرچ توضیح داده شده.
فایل پیشفرض گراب رو با ادیتور دلخواهتون (در اینجا gedit) باز کنید:
sudo gedit /etc/default/grub
و در قسمت GRUB_CMDLINE_LINUX_DEFAULT این مقادیر رو وارد کنید، به صورتی که اینجوری بشه:
GRUB_CMDLINE_LINUX_DEFAULT="quiet loglevel=3 rd.systemd.show_status=false rd.udev.log-priority=3 splash"
البته واضحه که اگر مقادیر دیگه ای هم در این خط وجود داره نباید پاک کنید. مهم اینه که quiet loglevel=3 rd.systemd.show_status=false rd.udev.log-priority=3 splash وجود داشته باشه. فایل رو ذخیره کنید و ببندید.

حالا این فایل رو باز کنید:
sudo gedit /etc/grub.d/10_linux

در این فایل دنبال دو تا خط زیر رو سرچ کنید (دو تا خط مشابه هستند) و حذف کنید. و بعد فایل رو ذخیره کنید و ببندید.
echo '$(echo "$message" | grub_quote)'


حالا باید fsck رو به systemd بسپاریم تا پیامی حین بوت نشون نده. برای اینکار، طبق همون ویکی، فایل mkinitcpio.conf رو باز میکنیم:
sudo gedit /etc/mkinitcpio.conf
در قسمت HOOKS باید کلمه fsck رو حذف کنید. فایل رو ذخیره کنید و ببندید. حالا باید یه تعییراتی انجام بدیم:
sudo cp /usr/lib/systemd/system/systemd-fsck@.service /etc/systemd/system/
و بعد:
sudo cp /usr/lib/systemd/system/systemd-fsck-root.service /etc/systemd/system/
حالا باید یکی یکی این فایلها رو باز کنیم:
sudo gedit /etc/systemd/system/systemd-fsck@.service
sudo gedit /etc/systemd/system/systemd-fsck-root.service
و این عبارت رو به آخر هر کدوم اضافه کنیم و ذخیره کنیم:
StandardOutput=null
StandardError=journal+console

به طوری که انتهای محتوای این فایل ها به این صورت بشه:
(...)
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/lib/systemd/systemd-fsck
TimeoutSec=0
StandardOutput=null
StandardError=journal+console


حالا این دستوها رو یکی یکی انجام میدیم تا تاثیر تغییراتی که دادیم در بوت اعمال بشه:
sudo mkinitcpio -p linux
sudo update-grub

البته اگه دستور اول عمل نکرد و پیام خطا داد، باید اول شماره کرنل لینوکس رو پیدا کنید:
uname -r

مثلا اگه شماره کرنل لینوکس شما 4.7.3 باشه، باید بجای linux بنویسید linux47 و اگر مثلا باشه 4.5.2 باید بنویسید linux45
با این کار، موقع بوت هیییییییچ پیام متنی نشون داده نمیشه. البته این رو در مورد مانجارو استفاده کردم، ممکنه در توزیع های دیگه مسیر فایلها فرق داشته باشه. با یه سرچ ساده میتونید مسیر فایلها رو توی توزیع خودتون پیدا کنید.