Jawaban:
Tidak ada daftar resmi, yang umum dikompilasi ke dalam kernel sendiri, yang lain dapat diuraikan oleh ekstensi kernel. Inilah daftar yang saya temukan sejauh ini.
Opsi boot umum:
-v
: Selalu boot sistem dalam mode Verbose tanpa perlu menahan CMD- Vpada saat startup.-x
: Selalu boot sistem ke Safe Mode tanpa harus menahan Shiftsaat startup.f
: Mode Aman Lama.-s
: Boot sistem ke mode Pengguna Tunggal tanpa perlu menahan CMD- Spada saat startup.-F
- Abaikan File Boot.iog
(mis. iog=0x0
)
Ini membalikkan mode "Clamshell" untuk sistem laptop Apple, di mana ketika Anda menutup layar tetapi menghubungkan sistem ke monitor eksternal dan keyboard, sistem akan tetap terjaga. Setelah menjalankan perintah ini, saat menghubungkan monitor eksternal, tampilan internal akan dinonaktifkan, yang dapat bermanfaat dalam beberapa situasi seperti situasi di mana Anda mencerminkan desktop Anda tetapi ingin menjalankan layar eksternal pada resolusi yang lebih tinggi daripada yang dapat dijalankan oleh laptop Anda . CNET
arch
Mengubah cara sistem melakukan boot, baik ke kernel 32-bit ( i386
) atau 64-bit ( x86_64
). Perhatikan bahwa ekstensi kernel pihak ketiga mungkin hanya 32-bit atau 64-bit.
Graphics Mode
: VESA Graphics Dimensions Mode.
Text Mode
: Dimensi Mode Teks VGA.Boot Graphics
: Grafik atau Mode Teks.Quiet Boot
: Quiet Bootmode.MKext Cache
: File cache mkext.Kernel Cache
: File Cache Kernel.rd
: Root Device.boot-uuid
: Boot UUID.platform
: Pakar Platform {ACPI}.config
: Muat alternatif config plist (misalnya config=foobar
akan memuat /Library/Preferences/SystemConfiguration/foobar.plist
bukannya com.apple.Boot.plist
) x86osx .
serverperfmode=1
Pada OS X El Capitan 10.11 dan yang lebih baru, ini memungkinkan mode kinerja untuk mendedikasikan sumber daya sistem tambahan untuk aplikasi server.
DTrace:
dtrace_dof_mode
: Setel mode DTrace DOF {0/1/2/3}.DisableFBT
: Nonaktifkan FBT {1}.IgnoreFBTBlacklist
: Abaikan daftar hitam modul kritis tertentu {1}.BSD:
-b
: Jangan jalankan /etc/rc.boot.-l
: Memori kebocoran logging ( osfmk/kern/startup.c
).srv
: Boot as server {1}.ncl
: Jumlah cluster.nbuf
: Jumlah buffer untuk BSD.kmem
: Akses memori kernel {1}.trace
: Ukuran buffer jejak kernel.msgbuf
: Penyangga Pesan.rp
: Path root.mcache_flags
: Bendera cache memori.mbuf_debug
: MBuf Debug {1}.initmcl
: Init mbuf cluster.socket_debug
: Socket debug (net).net_affinity
: Afinitas Bersih (bersih).rte_debug
: Rute debug (bersih) {flags}.-rwroot_hack
: Pasang root baca / tulis.IOKit:
mseg
: Segmen maks.dart
: Hapus mapper sekarang.io
: IO Kit Debug.Mach:
keepsyms
: Jangan membongkar terjemahan KLD / Address-simbol {1}.debug
: Kernel debug {flags} (mis debug=0x14e
.).
Mengaktifkan fitur debugging kernel yang akan menunjukkan kepada Anda informasi tambahan. Misalnya
0x01
- Berhenti saat boot dan tunggu debugger untuk melampirkan0x02
- Kirim output debugging kernel ke konsol0x04
- Masuk ke debugger pada interupsi nonmaskable0x08
- Kirim informasi debug kernel ke port serial0x10
- Jadikan ddb debugger default0x20
- Keluarkan informasi diagnostik ke log sistem0x40
- Biarkan debugger ke ARP dan rute0x80
- Mendukung gdb versi lama pada sistem yang lebih baru0x100
- Nonaktifkan layar dialog panik grafisnvram_paniclog
: komit paniclog ke NVRAM {1}.
pmsafe_debug
: Masukkan CPU ke mode daya "aman" {1}.preempt
: Tetapkan tingkat preemption default.unsafe
: Max quanta tidak aman.poll
: Max quanta polling.yield
: Jadwalkan pergeseran hasil jajak pendapat.idlehalt
: Hentikan utas menganggur untuk memungkinkan cpu ke mode daya rendah {1}.panic_io_port
: Dalam panik membaca dari port I / O ini {0x0 hingga 0xffff}._fpu
: Batasi fitur cpu waktu boot {387 / mmx / sse}.disable high mem/2
: lebih suka mem tinggi}.immediate_NMI
: Paksa debugger NMI segera {1}.-legacy
: Memaksa mode 32bit lama.lcks
: Mengunci statistik.novmx
: Tidak ada emulasi altivec di Rosetta {1}.max_valid_dma_addr
: Alamat DMA maks. Valid.maxbouncepool
: Ukuran kolam pantul maks.maxloreserve
: Maks cadangan rendah.npvhash
: Hash pemetaan fisik ke virtual.wpkernel
: Tulis proteksi kernel {1}.-no_shared_cr3
: Nonaktifkan ruang alamat kernel bersama untuk pengguna 64 bit.-pmap_trace
: Aktifkan jejak kernel untuk pmap._panicd_ip
: IP server panik._router_ip
: IP router.panicd_port
: Port server panik.-zc
: Pemeriksaan elemen zona bebas.mtxspin
: Mutex spin (ppc).vmmforce
: Kekuatan VMM (ppc).fn
: Force nap (ppc) (acpi) {0/1/2}.pmsx
: Mode stepper manajemen daya eksperimental (ppc) {1}.ctrc
: Setel penelusuran ke CPU spesifik (ppc).tb
: Ukuran buffer jejak non-standar (ppc).wcte
: Menulis gabungan timer aktifkan (ppc).mcklog
: Hapus tanda centang periksa mesin (ppc).mcksoft
: Pemulihan perangkat lunak periksa mesin (ppc).ht_shift
: Ukuran tabel hash non-default (ppc) {1}.zsize
: Ukuran zona target.colors
: Atur warna VM.fill
: Isi halaman.serialbaud
: Atur baud rate serial.Opsi boot dari xnu/osfmk/i386/i386_init.c
:
diag
: Keluaran diagnostik.serial
: Konsol diagnostik serial. Dukungan untuk keyboard seri dan / atau konsol.
maxmem
Memori maksimum untuk digunakan. Ini membatasi memori yang dapat dialamatkan ke jumlah yang ditentukan (misalnya maxmem=32
).
cpus=1
Membatasi jumlah prosesor aktif dalam sistem hingga level yang ditentukan. Ini mungkin membantu menghemat daya, kemungkinan tidak berguna untuk banyak hal lain kecuali Anda menguji dan memprogram.
himemory_mode
Ini digunakan untuk men-debug konfigurasi memori fisik besar untuk sistem lebih dari 4GB. Mode: 0 - semua halaman tersedia, 1 - nonaktifkan mem tinggi, 2 - lebih suka mem tinggi.
immediate_NMI
Dukungan debug untuk sistem lebih dari 4GB dengan memaksa debugger NMI langsung.
urgency_notification_abstime
Lain:
bluetoothHostControllerSwitchBehavior
( never
/ always
)
Beri tahu driver Bluetooth apakah akan beralih ke dongle yang Anda sambungkan. Untuk menjadikan dongle eksternal sebagai default bahkan setelah reboot, gunakan always
.
smbios
: Verbose SMBIOS (AppleSMBIOS.kext) {1}
acpi
: Debug AppleACPIPlatform {1-8}acpi_level
: Level Debug ACPIacpi_layer
: ACPI Debug Layeracpi_sleep
: ACPI Sleepnvdebug
: NVDAResman debugnvrm
: NVDAResmanndrv_debug_level
: Tingkat Debug NDRV (NVDAResman)pstep
: Power Step Debug (ACPI_SMC)hpet
: AppleHPETbusratio
(misalnya busratio=20
): Dulu i7 cpu di 10.5.6, setelah 10.5.7 tidak perlu x86osx .Sumber: xnu-1228 / Argumen Booting
Misalnya ketika Anda berada dalam Mode Tunggal ( CMD- Ssetelah suara saat startup), untuk menjalankan ke mode aman dan secara lisan dengan output debugging kernel tambahan ke konsol, coba:
sudo nvram boot-args="-x -v debug=0x14e"
Untuk menambahkan argumen ke yang sudah ada (tanpa mengesampingkan), coba:
sudo nvram boot-args="-v $(nvram boot-args 2>/dev/null | cut -f 2-)"
Untuk menghapus argumen boot, jalankan:
sudo nvram boot-args=""
sudo nvram -d boot-args
Parameter non-resmi lainnya dapat ditemukan di kernel
biner sendiri, misalnya
$ 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
Atau periksa di file sumber Apple atau di GitHub dengan mencari PE_parse_boot_argn
(yang digunakan untuk menguraikan argumen boot kernel).
Googling untuk boot-args site:developer.apple.com
memberi beberapa sumber daya yang baik. Misalnya
cpus=1
memaksa sistem untuk hanya menggunakan inti CPU tunggal. srv=1
diatur pada Xserves dan mesin yang telah menginstal Mac OS X Server, dan konon mengubah beberapa parameter tuning kernel untuk operasi yang ramah-server. _panicd_ip=a.b.c.d
Memungkinkan Anda menentukan alamat IP server debug panik untuk menulis dump inti kernel. debug=0xH
(Di mana H adalah angka heksadesimal 1-4 digit) Memungkinkan Anda mengatur flag debugging kernel dari daftar ini:
DB_HALT 0x01 Hentikan saat boot dan tunggu debugger attach (gdb). DB_PRT 0x02 Kirim hasil debug kernel printf ke konsol. DB_NMI 0x04 Masuk ke debugger di NMI (Command – Power, Command-Option-Control-Shift-Escape, atau interrupt switch). DB_KPRT 0x08 Kirim output kernel debugging kprintf ke port serial. DB_KDB 0x10 Jadikan ddb (kdb) default debugger (membutuhkan kernel khusus). DB_SLOG 0x20 Output info diagnostik tertentu ke log sistem. DB_ARP 0x40 Izinkan debugger ke ARP dan rute (memungkinkan debugging melintasi router dan menghilangkan kebutuhan untuk entri ARP permanen, tetapi merupakan celah keamanan potensial) —tidak tersedia di semua kernel. DB_KDP_BP_DIS 0x80 Mendukung gdb versi lama pada sistem yang lebih baru. DB_LOG_PI_SCRN 0x100 Nonaktifkan dialog panik grafis. DB_KERN_DUMP_ON_PANIC 0x0400 Menyebabkan kernel dump inti ketika sistem panik. DB_KERN_DUMP_ON_NMI 0x0800 Menyebabkan kernel dump inti ketika pengguna memicu NMI. DB_DBG_POST_CORE 0x1000 Mengontrol perilaku kernel setelah membuang inti sebagai respons terhadap NMI (DB_KERN_DUMP_ON_NMI). Jika pengguna memicu NMI dan flag ini jelas, kernel akan membuang inti dan kemudian melanjutkan. Sebaliknya, jika flag ini disetel, kernel akan membuang inti dan kemudian menunggu koneksi debugger. DB_PANICLOG_DUMP 0x2000 Mengontrol apakah kernel membuang inti penuh (jika flag jelas) atau hanya log panik (jika flag diatur).
static void parse_bsd_args(void)
opensource.apple.com/source/xnu/xnu-2782.1.97/bsd/kern/…
void i386_init(void)
opensource.apple.com/source/xnu/xnu-2782.1.97/osfmk/i386/…
void gzalloc_configure(void)
opensource.apple.com/source/xnu/xnu-2782.1.97/osfmk/kern/…
Berikut ini beberapa lainnya :
-f Force rebuild extensions cache
-v Verbose booting shows debug information
-s Boots into single user mode (means only terminal based mode)
-x Boots into safe mode
-legacy Boots into 32bit instead of 64bit mode
rd=disk0s1 Force to boot a specific partition on a specific drive (BSD drive notation, means disk0 = physical disk 1). Here disk1 partition 1 is forced to be booted.
Graphics Mode=1024x768x32@75 Forces to boot with a resolution of 1024 x 768 with 32bit colors at 75Hz
Kernel=mach_kernel Forces to load a specific kernel, helpful for testing of new kernels.
cpus=1 Force using only 1 CPU core, may help addressing issues
idlehalt=0 May solve stuttering and shuttering on dualcore CPUs
platform=X86PC Forces to not use powermanagement (disables ACPI)
platform=ACPI Forces to use powermanagement (enables ACPI, but may crash your system)
Kernel darwin disebut "xnu", yang terbaik yang bisa saya lakukan adalah untuk mengambil kode sumber untuk apa yang sedang dicari.
Contoh: OS X 10.8.5
https://gist.github.com/reklis/fa26d4e8db62d6eea9ea
Prosedur:
Buka di sini (atau versi OS X Anda)
http://www.opensource.apple.com/release/mac-os-x-1085/
Unduh tar XNU, ekstrak, ambil untuk "parse_boot"
cd xnu; grep -iRn parse_boot .
Jangan lupa hal yang sangat berguna (jika Anda memperbarui ke Lion dan ingin menggunakan mac Anda dalam 'mode clamshell tertutup' dengan tutupnya terbuka)
sudo nvram boot-args="iog=0x0"
pujian untuk: chenga.8
Namun, yang menggangguku adalah aku tidak menemukan penjelasan untuk itu. Kenapa 0x0? Kenapa tidak 0x1? Apa artinya 'iog'?
Saya harus menunjukkan bahwa pada macbook saya tidak berfungsi.
Apple sepertinya tidak memberikan daftar lengkap. Googling untuk beberapa opsi yang diketahui dan site:apple.com
tidak membuahkan hasil apa pun. Mengurangi daftar opsi menemukan artikel seperti ini dan beberapa kode sumber menguraikan argumen ini, tetapi tidak ada yang komprehensif.
Anda juga bisa mencari PE_parse_boot_arg
, fungsi yang, mem-parsing argumen boot.
Yang sedang berkata, ada beberapa halaman pihak ketiga di web di mana pengguna memberikan informasi paling komprehensif yang bisa saya temukan, tetapi mungkin sudah ketinggalan zaman: