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 melampirkan
0x02
- Kirim output debugging kernel ke konsol
0x04
- Masuk ke debugger pada interupsi nonmaskable
0x08
- Kirim informasi debug kernel ke port serial
0x10
- Jadikan ddb debugger default
0x20
- Keluarkan informasi diagnostik ke log sistem
0x40
- Biarkan debugger ke ARP dan rute
0x80
- Mendukung gdb versi lama pada sistem yang lebih baru
0x100
- Nonaktifkan layar dialog panik grafis
nvram_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 ACPI
acpi_layer
: ACPI Debug Layer
acpi_sleep
: ACPI Sleep
nvdebug
: NVDAResman debug
nvrm
: NVDAResman
ndrv_debug_level
: Tingkat Debug NDRV (NVDAResman)
pstep
: Power Step Debug (ACPI_SMC)
hpet
: AppleHPET
busratio
(misalnya busratio=20
): Dulu i7 cpu di 10.5.6, setelah 10.5.7 tidak perlu x86osx .
Sumber: xnu-1228 / Argumen Booting
Pemakaian
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. Misalnyacpus=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:sumber
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 :
sumber
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 .
sumber
Jangan lupa hal yang sangat berguna (jika Anda memperbarui ke Lion dan ingin menggunakan mac Anda dalam 'mode clamshell tertutup' dengan tutupnya terbuka)
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.
sumber
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:
sumber