กำจัดข้อความ“ ไม่พบหน้าโหมดแคช” ระหว่างการบู๊ต


11

ระหว่างการบู๊ตตอนแรกฉันได้รับข้อความแสดงข้อผิดพลาด

[sdb] No Caching mode page found
[sdb] Assuming drive cache: write through

ถ้าฉันเข้าใจถูกต้องนี่เป็นเพียงข้อความข้อมูลที่ไม่เป็นอันตรายและไม่ใช่ข้อผิดพลาดจริง sdbเป็นดิสก์ USB ของฉันและไม่ได้ใช้แคช

ปัญหาคือฉันตั้งใจตั้งเคอร์เนล loglevel เป็น 4 เพื่อกำจัดข้อความข้อมูลที่ไร้ประโยชน์เหล่านี้

เหตุใดฉันจึงยังได้รับข้อความข้อมูลนี้อยู่

เหตุผลที่ทำให้ฉันรำคาญคือมันรบกวนการแจ้งรหัสผ่านของฉัน (สำหรับการถอดรหัสดิสก์ LUKS ของฉัน)

มีวิธีกำจัดข้อความนี้หรือไม่?


ใช้พารามิเตอร์เคอร์เนลที่ต่ำกว่าเช่นloglevel=0เพื่อปรับระดับการส่งข้อความของ linux ฉันคิดว่าระดับ 4 สูงเกินไปที่จะปิดบังข้อความเฉพาะนี้ ระดับ 0 อาจรุนแรงเกินไป แต่มันจะกำจัดอึของระบบที่น่ารำคาญทั้งหมดในกลางหน้าจอบูตที่แสนหวานของฉัน
Dominic Cerisano

คำตอบ:


5

ฮาร์ดดิสก์มี RAM แคชจำนวนเล็กน้อยเพื่อเพิ่มความเร็วในการเขียน ระบบสามารถเขียนข้อมูลลงในดิสก์แคชได้โดยไม่ต้องรอให้เขียนลงดิสก์ บางครั้งเรียกว่าโหมด "เขียนกลับ" หากไม่มีแคชบนดิสก์ข้อมูลจะถูกเขียนโดยตรงในโหมด "การเขียนผ่าน" คำเตือนการค้นหาข้อมูลแคชที่ล้มเหลวมักจะเกิดขึ้นกับอุปกรณ์เช่นแฟลชไดรฟ์ USB, เครื่องอ่านการ์ด USB ฯลฯ ซึ่งแสดงตนเป็นอุปกรณ์ SCSI ในระบบ (sdX) แต่ไม่มีแคช ระบบถามอุปกรณ์: "คุณมีแคชหรือไม่" และไม่ได้รับคำตอบ ดังนั้นจึงถือว่าไม่มีแคชและวางไว้ในโหมด "เขียนผ่าน"

คุณอาจลองไปที่:

/etc/modules

และด้านบนของรายการโมดูลเพิ่มบรรทัด

usb_storage

ควรมีลักษณะดังนี้:

# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.

usb_storage
lp

นี่คือวิธีที่ฉันแก้ไขปัญหาที่คล้ายกัน

ให้ฉันรู้ว่าเกิดอะไรขึ้น


1
ฉันไม่แน่ใจว่าปัญหานี้ควรแก้ไขได้อย่างไร แต่มันใช้ไม่ได้กับปัญหาของฉัน นอกจากนี้ฉันไม่ได้ใช้โมดูลในเคอร์เนลของฉัน
Martin Vegter

ไม่ได้แก้ไข
Ahmed Eid

@ มาลีฉันสงสัยว่า "lp" อยู่ในบรรทัดสุดท้าย มันยืนหยัดเพื่ออะไร?
Pranav

1

ใช่. คุณสามารถกำจัดข้อความดังกล่าวได้โดยดำเนินการคำสั่งต่อไปนี้:

echo 0 > /proc/sys/kernel/printk

การดำเนินการนี้จะระงับข้อความเคอร์เนลเกือบทั้งหมดและจะแสดงเฉพาะข้อความฉุกเฉินเท่านั้น

ดูลิงค์นี้สำหรับข้อมูลเพิ่มเติม


ทำไมต้องลงคะแนน ???
SHW

2
อาจจะเป็นเพราะนี้จะไม่ได้มีผลกระทบในช่วงต้นการบูตเครื่องก่อน userspace ใด ๆ ที่จะควบคุม การตั้งค่าเดียวกันจะมีผลโดยเพิ่มloglevel=0ไปยังบรรทัดคำสั่งเคอร์เนลจาก bootloader (โดยการแก้ไขและการใช้การกำหนดค่า bootloader ก่อนรีบูตครั้งถัดไป) ป.ล. ฉันไม่ได้ลงคะแนนเพียงแค่ FYI

ฉันหมายถึงภายใต้userspace controlเป็นechoคำสั่งที่จะเขียนถึง/proc/sys/kernel/printkpseudofile

1
OP สามารถเพิ่มคำสั่ง echo ด้านบนใน hooks หรือสคริปต์ initramfsfs อันใดอันหนึ่งของเขา
SHW

1
@SHW - ฉันไม่ต้องการที่จะระงับข้อความเคอร์เนลทั้งหมด คำถามของฉันชัดเจน "ฉันจะกำจัดข้อความนี้ได้อย่างไร " loglevel=4นอกจากนี้ผมระบุไว้ในโพสต์ต้นฉบับของฉันที่ฉันใช้พารามิเตอร์เคอร์เนล ฉันสามารถเปลี่ยนเพื่อloglevel=5กำจัดข้อความเกือบทั้งหมด แต่นี่ไม่ใช่สิ่งที่ฉันต้องการ
Martin Vegter

1

นี่อาจเป็นข้อความเตือน (ผู้ขับขี่อาจเห็นว่าสำคัญพอที่จะกล่าวถึง) คุณไม่ได้ระบุว่าไดรเวอร์ใดที่ฮาร์ดไดรฟ์ USB ของคุณใช้อยู่ดังนั้นฉันจึงไม่สามารถชี้ไปที่บรรทัดต้นทางเพื่อตรวจสอบสิ่งนี้ ข้อมูลเพิ่มเติมเกี่ยวกับระดับการบันทึกที่นี่: http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/include/linux/kern_levels.h?id=HEAD

การแก้ไขที่ง่ายที่สุดคือการเพิ่ม "เงียบ" ในอาร์กิวเมนต์ของเคอร์เนลผ่าน bootloader ไม่ว่าจะเป็น GRUB / LILO / etc


0

เปลี่ยนวิธีการบูท USB ของคุณในขณะที่เปลี่ยนยูเอสบีเป็นอุปกรณ์ที่ใช้บู๊ตได้ใช้เครื่องมือ power iso เพื่อทำให้อุปกรณ์ที่ใช้บู๊ตยูเอสบีของคุณทำงานได้ 100% โดยไม่ต้องล้มเหลว ...


0

ฉันมีปัญหานี้ด้วยการติดตั้ง Arch Linux UEFI ใหม่ที่ผมใช้ UEFI สด USB เพื่อโหลด bootloader ESPบนที่

วิธีแก้คือการแก้ไขปัญหาการติดตั้งที่มีการจัดการการบูต EFI

หากคุณใช้GRUB& ไม่ใช่การEFISTUBบูต Linux คุณไม่จำเป็นต้องเพิ่มcryptคำสั่งเคอร์เนลลงในefibootmgrคำสั่ง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.