ไม่มีรายการอย่างเป็นทางการรายการทั่วไปถูกรวบรวมเป็นเคอร์เนลด้วยตนเองส่วนอื่น ๆ สามารถแยกวิเคราะห์ได้โดยส่วนขยายเคอร์เนล นี่คือรายการที่ฉันได้พบจนถึง
ตัวเลือกการบูตทั่วไป:
-v: ทำการบูทระบบในโหมด Verbose เสมอโดยไม่จำเป็นต้องกดค้างCMD- Vเมื่อเริ่มต้น
-x: บู๊ตระบบเข้าสู่Safe Mode เสมอโดยไม่จำเป็นต้องหยุดShiftทำงานเมื่อเริ่มต้นระบบ
f: เซฟโหมดเก่า
-s: บูตเครื่องเข้าสู่โหมดผู้ใช้คนเดียวโดยไม่จำเป็นต้องกดค้างCMD- Sเมื่อเริ่มต้น
-F - ละเว้นไฟล์บู๊ต
iog(เช่นiog=0x0)
นี่เป็นการย้อนกลับโหมด "Clamshell" สำหรับระบบแล็ปท็อปของ Apple ซึ่งเมื่อคุณปิดจอแสดงผล แต่เชื่อมต่อระบบกับจอภาพภายนอกและแป้นพิมพ์ระบบจะยังคงทำงานอยู่ หลังจากรันคำสั่งนี้เมื่อเชื่อมต่อจอภาพภายนอกจอแสดงผลภายในจะถูกปิดการใช้งานซึ่งอาจเป็นประโยชน์ในบางสถานการณ์เช่นที่คุณกำลังทำมิเรอร์เดสก์ท็อปของคุณ แต่ต้องการรันจอแสดงผลภายนอกที่ความละเอียดสูงกว่าแล็ปท็อปของคุณ . CNET
arch
เปลี่ยนวิธีที่ระบบบู๊ตไม่ว่าจะเป็นเคอร์เนลแบบ 32- บิต ( i386) หรือ 64- บิต ( x86_64) โปรดทราบว่าส่วนขยายเคอร์เนลของบุคคลที่สามอาจเป็นแบบ 32 บิตหรือ 64 บิตเท่านั้น
Graphics Mode: ขนาดโหมดกราฟิก VESA
Text Mode: ขนาดโหมดข้อความ VGA
Boot Graphics: กราฟิกหรือโหมดข้อความ
Quiet Boot: Bootmode ที่เงียบสงบ
MKext Cache: ไฟล์แคช Mkext
Kernel Cache: ไฟล์ Kernel Cache
rd: อุปกรณ์รูท
boot-uuid: Boot UUID
platform: ผู้เชี่ยวชาญแพลตฟอร์ม {ACPI}
config: โหลด plist การตั้งค่าอื่น (เช่นconfig=foobarจะโหลด/Library/Preferences/SystemConfiguration/foobar.plistแทนcom.apple.Boot.plist) x86osx
serverperfmode=1
บน OS X El Capitan 10.11 และใหม่กว่าสิ่งนี้จะเปิดใช้งานโหมดประสิทธิภาพเพื่ออุทิศทรัพยากรระบบเพิ่มเติมสำหรับแอปพลิเคชันเซิร์ฟเวอร์
DTrace:
dtrace_dof_mode: ตั้งค่าโหมด DTrace DOF {0/1/2/3}
DisableFBT: ปิดใช้งาน FBT {1}
IgnoreFBTBlacklist: ละเว้นบัญชีดำของโมดูลสำคัญบางตัว {1}
BSD:
-b: อย่าเรียกใช้ /etc/rc.boot
-l: การบันทึกการรั่วไหลของหน่วยความจำ ( osfmk/kern/startup.c)
srv: บูตเป็นเซิร์ฟเวอร์ {1}
ncl: จำนวนกลุ่ม
nbuf: จำนวนบัฟเฟอร์สำหรับ BSD
kmem: การเข้าถึงหน่วยความจำเคอร์เนล {1}
trace: ขนาดบัฟเฟอร์การติดตามเคอร์เนล
msgbuf: บัฟเฟอร์ข้อความ
rp: รูทพา ธ
mcache_flags: แฟล็กแคชหน่วยความจำ
mbuf_debug: MBuf Debug {1}
initmcl: กลุ่ม mbuf เริ่มต้น
socket_debug: Socket debug (สุทธิ)
net_affinity: Net Affinity (สุทธิ)
rte_debug: debug เส้นทาง (สุทธิ) {flag}
-rwroot_hack: เมานต์รูทอ่าน / เขียน
IOKit:
mseg: ส่วนสูงสุด
dart: ลบผู้ทำแผนที่ออก
io: IO Kit Debug
Mach:
keepsyms: ห้ามถอดการแปล KLD / ที่อยู่ - สัญลักษณ์ {1}
debug: เคอร์เนลดีบัก {flag} (เช่นdebug=0x14e)
เปิดใช้งานคุณสมบัติการดีบักเคอร์เนลที่จะแสดงข้อมูลเพิ่มเติมให้คุณ เช่น
0x01 - หยุดที่เวลาบูตและรอให้ตัวดีบั๊กแนบมา
0x02 - ส่งเอาต์พุตการดีบักเคอร์เนลไปที่คอนโซล
0x04 - ดร็อปเข้าดีบักเกอร์บนอินเทอร์รัปต์ที่ห้ามใช้
0x08 - ส่งข้อมูลการดีบักเคอร์เนลไปยังพอร์ตอนุกรม
0x10 - ทำให้ ddb เป็นดีบักเกอร์เริ่มต้น
0x20 - ข้อมูลการวิเคราะห์เอาต์พุตไปยังบันทึกระบบ
0x40 - อนุญาตให้ดีบักเกอร์ไปที่ ARP และเส้นทาง
0x80 - รองรับ gdb รุ่นเก่าในระบบที่ใหม่กว่า
0x100 - ปิดการใช้งานหน้าจอข้อความโต้ตอบแบบตื่นตระหนกแบบกราฟิก
nvram_paniclog: กำหนด paniclog ให้กับ NVRAM {1}
pmsafe_debug: ใส่ CPU ในโหมดพลังงาน "ปลอดภัย" {1}
preempt: ตั้งค่าอัตราการจองเริ่มต้น
unsafe: ควอนตัมที่ไม่ปลอดภัยสูงสุด
poll: ควอนตัมสำรวจสูงสุด
yield: กำหนดการกะผลการสำรวจความคิดเห็น
idlehalt: หยุดเธรดที่ไม่ทำงานเพื่อให้ cpu เข้าสู่โหมด lowpower {1}
panic_io_port: ในตื่นตระหนกอ่านจากพอร์ต I / O นี้ {0x0 ถึง 0xffff}
_fpu: จำกัด คุณสมบัติ cpu เวลาบูต {387 / mmx / sse}
disable high mem/2: ชอบ mem สูง ๆ }
immediate_NMI: บังคับใช้ดีบักเกอร์ NMI ทันที {1}
-legacy: โหมดบังคับ 32 บิตที่สืบทอดมา
lcks: สถิติการล็อค
novmx: ไม่มีการจำลอง altivec ใน Rosetta {1}
max_valid_dma_addr: ที่อยู่ DMA สูงสุดที่ถูกต้อง
maxbouncepool: ขนาดสระตีกลับสูงสุด
maxloreserve: สำรองสูงสุดต่ำสุด
npvhash: แฮชการแมปทางกายภาพและเสมือน
wpkernel: เขียนการป้องกันเคอร์เนล {1}
-no_shared_cr3: ปิดใช้งานพื้นที่ที่อยู่เคอร์เนลที่ใช้ร่วมกันสำหรับผู้ใช้ 64 บิต
-pmap_trace: เปิดใช้งานการติดตามเคอร์เนลสำหรับ pmap
_panicd_ip: IP ของเซิร์ฟเวอร์ panic
_router_ip: IP ของเราเตอร์
panicd_port: พอร์ตของเซิร์ฟเวอร์ panic
-zc: การตรวจสอบองค์ประกอบโซนฟรี
mtxspin: Mutex หมุน (ppc)
vmmforce: แรง VMM (ppc)
fn: Force nap (ppc) (acpi) {0/1/2}
pmsx: โหมด stepper การจัดการพลังงานแบบทดลอง (ppc) {1}
ctrc: ตั้งค่าการติดตามเป็น cpu เฉพาะ (ppc)
tb: ขนาดบัฟเฟอร์การติดตามที่ไม่เป็นค่าเริ่มต้น (ppc)
wcte: เปิดใช้งานการเขียนตัวจับเวลารวม (ppc)
mcklog: ล้างธงตรวจสอบเครื่อง (ppc)
mcksoft: การกู้คืนซอฟต์แวร์ตรวจสอบเครื่อง (ppc)
ht_shift: ขนาดตารางแฮชที่ไม่ใช่ค่าเริ่มต้น (ppc) {1}
zsize: ขนาดของโซนเป้าหมาย
colors: ตั้งค่าสีของ VM
fill: เติมหน้า
serialbaud: ตั้งอัตรารับส่งข้อมูลแบบอนุกรม
ตัวเลือกการบูตจากxnu/osfmk/i386/i386_init.c:
diag: เอาต์พุตการวิเคราะห์
serial: คอนโซลการวินิจฉัยแบบอนุกรม รองรับคีย์บอร์ดอนุกรมและ / หรือคอนโซล
maxmem
หน่วยความจำสูงสุดที่ใช้ มัน จำกัด หน่วยความจำที่แอดเดรสได้ตามจำนวนที่ระบุ (เช่นmaxmem=32)
cpus=1
จำกัด จำนวนตัวประมวลผลที่ใช้งานอยู่ในระบบให้อยู่ในระดับที่กำหนดไว้ สิ่งนี้อาจช่วยรักษาพลังงานไม่น่าจะมีประโยชน์สำหรับสิ่งอื่นมากนอกจากคุณจะทดสอบและตั้งโปรแกรม
himemory_mode
มันถูกใช้เพื่อดีบักการกำหนดค่าหน่วยความจำฟิสิคัลขนาดใหญ่สำหรับระบบ 4GB โหมด: 0 - ทุกหน้าพร้อมใช้งาน 1 - ปิดใช้งาน high mem, 2 - ต้องการ high mem
immediate_NMI
แก้ไขข้อผิดพลาดรองรับระบบมากกว่า 4GB โดยบังคับให้ดีบักเกอร์ NMI ทันที
urgency_notification_abstime
อื่น ๆ :
bluetoothHostControllerSwitchBehavior( never/ always)
บอกคนขับรถบลูทู ธ ได้ว่าจะสลับไปดองเกิลที่คุณเสียบ. เพื่อให้ dongle ภายนอกเริ่มต้นแม้หลังจากรีบูต, alwaysการใช้งาน
smbios: Verbose SMBIOS (AppleSMBIOS.kext) {1}
acpi: แก้ไขข้อบกพร่อง AppleACPIP แพลตฟอร์ม {1-8}
acpi_level: ACPI Debug Level
acpi_layer: ACPI Debug Layer
acpi_sleep: ACPI Sleep
nvdebug: NVDAResman ดีบัก
nvrm: NVDAResman
ndrv_debug_level: ระดับการดีบัก NDRV (NVDAResman)
pstep: Power Step Debug (ACPI_SMC)
hpet: AppleHPET
busratio(เช่นbusratio=20): มันใช้ i7 CPU ใน 10.5.6 หลังจาก 10.5.7 มันไม่จำเป็นต้องx86osx
ที่มา: อาร์กิวเมนต์ xnu-1228 / Boot
การใช้
ตัวอย่างเช่นเมื่อคุณอยู่ในโหมด Single ( CMD- Sหลังจากเสียงเมื่อเริ่มต้น) เมื่อต้องการเรียกใช้ในเซฟโหมดและ verbosely ด้วยผลลัพธ์เพิ่มเติมเคอร์เนลดีบักไปยังคอนโซลลอง:
sudo nvram boot-args="-x -v debug=0x14e"
หากต้องการเพิ่มอาร์กิวเมนต์ลงในที่มีอยู่ (โดยไม่ต้องลบล้าง) ให้ลอง:
sudo nvram boot-args="-v $(nvram boot-args 2>/dev/null | cut -f 2-)"
ในการลบอาร์กิวเมนต์การบู๊ตให้รัน:
sudo nvram boot-args=""
sudo nvram -d boot-args
พารามิเตอร์ที่ไม่เป็นทางการอื่น ๆ สามารถพบได้ในkernelไบนารีมันเองเช่น
$ strings /System/Library/Kernels/kernel | grep -C7 maxmem
kernel_early_bootstrap
diag
serial
Serial mode specified: %08X
PE_init_printf
version_variant = %s
version = %s
maxmem
himemory_mode
himemory_mode: %d
immediate_NMI
urgency_notification_abstime
i386_vm_init
power_management_init
machine_startup
หรือตรวจสอบอย่างใดอย่างหนึ่งในไฟล์ต้นฉบับของ Appleหรือบน GitHub โดยค้นหาPE_parse_boot_argn(ซึ่งใช้ในการวิเคราะห์อาร์กิวเมนต์การบูตเคอร์เนล)