ไฟล์บันทึกที่สร้างโดยการเริ่มต้นอย่างละเอียดใน OS X Lion อยู่ที่ไหน


19

หลังจากเปิดเครื่องในโหมด verbose (cmd + v เมื่อเริ่มต้น) ฉันต้องการดูข้อความบันทึกที่สร้างขึ้นเพื่อแก้ไขข้อผิดพลาดที่ฉันได้รับ ( ข้อผิดพลาด ) ข้อผิดพลาดจะปรากฏขึ้นบนหน้าจอสั้น ๆ ระหว่างการเริ่มต้นก่อนที่เครื่องจะรีบูต เป็นผลให้ไม่มีเวลาอ่านอย่างถูกต้อง

OS X มีไฟล์บันทึกแยกต่างหากสำหรับข้อความเริ่มต้นหรือสิ่งเหล่านี้ฝังอยู่ในไฟล์ kernel.log และ system.log หรือไม่ หากพวกเขาถูกฝังอยู่ในไฟล์เหล่านี้มีวิธีที่รวดเร็วในการข้ามไปยังจุดที่ระบบบู๊ตภายในตัวแสดงคอนโซลหรือไม่?

คำตอบ:


3

การเริ่มต้นอย่างน้อย Snow Leopard และ Leopard อาจเป็นไปได้การบันทึกทั้งหมดในระบบต้องผ่านกลไก Apple System Log (ASL) ซึ่งเป็นเหมือน daemon กลางและฐานข้อมูลสำหรับข้อความบันทึกทั้งหมด ASL daemon ยังทำให้แน่ใจว่าข้อความบันทึกที่เหมาะสมที่ตรงตามเกณฑ์บางอย่างนั้นถูกเขียนไปยังไฟล์บันทึกข้อความแบบดั้งเดิมเช่นsystem.logและkernel.logทุกอย่างไปที่ฐานข้อมูล ASL เช่นกัน

สำหรับข้อมูลเพิ่มเติมโปรดดูที่หน้าคนสำหรับsyslog(1), logger(1), syslog(3), asl(3), syslog.conf(5), asl.conf(5), syslogd(8)ฯลฯ

คุณสามารถใช้syslog(1)เพื่อออกแบบสอบถามกับฐานข้อมูล ASL นอกจากนี้ยัง/Utilities/Console.appมี GUI สำหรับการสร้างและบันทึกเคียวรีที่กำหนดเองสำหรับฐานข้อมูล ASL

ฉันค่อนข้างแน่ใจว่าบัฟเฟอร์ข้อความของเคอร์เนล (ดูแบบดั้งเดิมด้วยdmesg(8)) ได้รับการทิ้งลงในฐานข้อมูล ASL ทันทีที่การบูตดำเนินไปไกลพอsyslogdที่จะใช้งานได้ดังนั้นคุณไม่จำเป็นต้องโทรติดต่อdmesgโดยตรงยกเว้นผ่านนิสัย หรือหากระบบของคุณบูตไม่ไกลพอsyslogdที่จะใช้งานได้


มันใช้งานได้กับรองเท้าก่อนหน้าหรือไม่? ปัญหาที่ฉันประสบเมื่อฉันเขียนคำถามนี้ (แก้ไขแล้วตอนนี้ขอบคุณ) กำลังเกิดขึ้นเป็นระยะ ๆ เท่านั้น ดังนั้นทุก ๆ การบู๊ตมันคือ Kernel panic กับฉันและสิ่งที่ฉันต้องการจะทำคือการบู๊ตที่ประสบความสำเร็จครั้งต่อไปให้ตรวจสอบไฟล์บันทึกค้นหาการบู๊ตครั้งก่อนและลองและดีบัก
purpletonic

@purpletonic ใช่ทุกอย่างที่ส่งไปยัง ASL จะถูกใส่ไว้ในฐานข้อมูลซึ่งมันจะคงอยู่เป็นค่าเริ่มต้น 7 วัน (สามารถปรับได้ด้วยasl.conf(5)) ดังนั้นหากคุณกำลังดีบักปัญหาการบูทและทำการรีบูทหลายครั้งในวันเดียวกันพวกเขาจะอยู่ที่นั่นโดยปริยาย และถ้ามันเป็นปัญหาระยะยาวคุณสามารถปรับระยะเวลาการเก็บรักษา ASL เพื่อให้สิ่งต่าง ๆ นานขึ้น
Spiff

คำตอบนี้ไม่ได้พูดว่าฉันจะดูผลลัพธ์จากกระบวนการบูต "verbose" ได้อย่างไร เมื่อบู๊ตแล้วdmesgจะแสดงเฉพาะรายการล่าสุดบางรายการเท่านั้น แต่ไม่แสดงบันทึกการบูต ลองทำสิ่งนี้ใน 10.12.6 - ไม่มีไฟล์ "kernel.log" อีกต่อไป
SuperTempel

11

เปิด Terminal.app และเรียกใช้

sudo dmesg

(คุณจะถูกถามรหัสผ่านของคุณ)

นี่จะแสดงข้อความของระบบจากการเริ่มต้นครั้งล่าสุดจนถึงตอนนี้ (คุณจะพบข้อความเริ่มต้นที่ด้านบนของผลลัพธ์) คุณอาจลอง

sudo dmesg | มากกว่า

การดำเนินการนี้จะส่งข้อความออกทีละหน้า


ดี! ฉันจะใช้น้อยลงแทนที่จะใช้มากกว่ามันสะดวกกว่าและไม่เกะกะการเลื่อนหน้าจอเทอร์มินัลของคุณ
SilverWolf - Reinstate Monica

4

คำตอบที่ยอมรับ (โดย Spiff) ไม่เป็นประโยชน์กับฉันและไม่มี kernel.log อีกต่อไป

อะไรที่เหมาะกับฉัน (บน macOS 10.12.6) คือคำสั่งนี้:

log show --predicate "processID == 0" --start $(date "+%Y-%m-%d") --debug

มันจะแสดงเคอร์เนล msgs ทั้งหมดของวันนี้รวมถึงกระบวนการบู๊ต มันต้องการการทำความสะอาดบ้าง แต่อย่างน้อยมันก็มีทุกอย่างที่ฉันต้องการในการค้นหา


มันก็ใช้ได้กับฉันเช่นกัน ขอขอบคุณ. คำตอบอื่น ๆ แสดงสิ่งที่ไม่จำเป็นต้องเกี่ยวข้องกับการบูทขึ้นหรือไม่แสดงสิ่งที่ถูกพิมพ์ระหว่างการบู๊ต คำตอบของคุณคือ +1 และมันก็เป็นรหัสสีด้วย!
Max Coplan

2

ฉันสงสัยว่าจะได้รับบันทึกที่เหมาะสมที่สุดในการเริ่มต้นอย่างไรโดยไม่ต้องเข้าถึงคอนโซล / เทอร์มินัล มันเกิดข้อผิดพลาดเมื่อเริ่มต้น แต่คุณสามารถเข้าถึงระบบไฟล์ผ่านทางแผ่นติดตั้ง (ฉันมีบูทลินุกซ์สำหรับบูตคู่) ไฟล์คือ:

/var/log/kernel.log

หากคุณสามารถเข้าถึงคอนโซลภายในระบบปฏิบัติการจะเป็นการดีกว่าที่จะทำตามคำแนะนำอื่น ๆ และใช้คำสั่งที่เหมาะสม

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