Nie ma oficjalnej listy, wspólna jest kompilowana w jądro, inne mogą być analizowane przez rozszerzenia jądra. Oto lista, którą znalazłem do tej pory.
Ogólne opcje uruchamiania:
-v: Zawsze uruchamiaj system w trybie pełnym, bez konieczności wstrzymywania CMD- Vpodczas uruchamiania.
-x: Zawsze uruchamiaj system w trybie awaryjnym bez konieczności trzymania go Shiftpodczas uruchamiania.
f: Stary tryb awaryjny.
-s: Uruchom system w trybie pojedynczego użytkownika bez konieczności wstrzymywania CMD- Spodczas uruchamiania.
-F - Zignoruj plik rozruchowy.
iog(np. iog=0x0)
Powoduje to odwrócenie trybu „Clamshell” w komputerach przenośnych Apple, w którym po zamknięciu wyświetlacza, ale podłączeniu systemu do zewnętrznego monitora i klawiatury, system pozostanie bezczynny. Po uruchomieniu tego polecenia, po podłączeniu zewnętrznego monitora, wewnętrzny wyświetlacz zostanie wyłączony, co może być korzystne w niektórych sytuacjach, takich jak te, gdy dublujesz pulpit, ale chcesz uruchomić zewnętrzny wyświetlacz w wyższej rozdzielczości niż laptop może działać . CNET
arch
Zmienia sposób uruchamiania systemu, na jądro 32-bitowe ( i386) lub 64-bitowe ( x86_64). Pamiętaj, że rozszerzenia jądra innych firm mogą być 32-bitowe lub tylko 64-bitowe.
Graphics Mode: Wymiary trybu graficznego VESA.
Text Mode: Wymiary trybu tekstowego VGA.
Boot Graphics: Tryb graficzny lub tekstowy.
Quiet Boot: Quiet Bootmode.
MKext Cache: Plik pamięci podręcznej Mkext.
Kernel Cache: Plik pamięci podręcznej jądra.
rd: Urządzenie root.
boot-uuid: Uruchom identyfikator UUID.
platform: Platform Expert {ACPI}.
config: Obciążenia alternatywną plist konfiguracyjne (np config=foobarładuje /Library/Preferences/SystemConfiguration/foobar.plistzamiast com.apple.Boot.plist) x86osx .
serverperfmode=1
W systemie OS X El Capitan 10.11 i nowszych umożliwia to trybowi wydajności przeznaczenie dodatkowych zasobów systemowych dla aplikacji serwerowych.
DTrace:
dtrace_dof_mode: Ustaw tryby DTrace DOF {0/1/2/3}.
DisableFBT: Wyłącz FBT {1}.
IgnoreFBTBlacklist: Zignoruj czarną listę niektórych krytycznych modułów {1}.
BSD:
-b: Nie uruchamiaj /etc/rc.boot.
-l: Rejestrowanie wycieków pamięci ( osfmk/kern/startup.c).
srv: Uruchom jako serwer {1}.
ncl: Liczba klastrów.
nbuf: Liczba buforów dla BSD.
kmem: Dostęp do pamięci jądra {1}.
trace: Rozmiar bufora śledzenia jądra.
msgbuf: Bufor wiadomości.
rp: Ścieżka główna.
mcache_flags: Flagi pamięci podręcznej.
mbuf_debug: MBuf Debug {1}.
initmcl: Init klastrów mbuf.
socket_debug: Debugowanie gniazda (netto).
net_affinity: Powinowactwo netto (netto).
rte_debug: Route debug (net) {flags}.
-rwroot_hack: Zamontuj root do odczytu / zapisu.
IOKit:
mseg: Maksymalny segment.
dart: Usuń obecny program mapujący.
io: Debugowanie zestawu IO.
Mach:
keepsyms: Nie usuwaj tłumaczenia KLD / translacji symboli adresu {1}.
debug: Debugowanie jądra {flagi} (np debug=0x14e.).
Włącza funkcje debugowania jądra, które pokażą dodatkowe informacje. Na przykład
0x01 - Zatrzymaj się w czasie uruchamiania i poczekaj na dołączenie debugera
0x02 - Wyślij wyjście debugowania jądra do konsoli
0x04 - Wpadnij do debuggera w przypadku niemożliwego do wykonania przerwania
0x08 - Wyślij informacje debugowania jądra do portu szeregowego
0x10 - Ustaw ddb jako domyślny debugger
0x20 - Przesyłanie informacji diagnostycznych do dziennika systemu
0x40 - Pozwól debuggerowi na ARP i trasę
0x80 - Obsługa starych wersji gdb na nowszych systemach
0x100 - Wyłącz graficzny ekran dialogowy paniki
nvram_paniclog: zatwierdzanie paniclogu do NVRAM {1}.
pmsafe_debug: Przełącz procesory w „bezpieczny” tryb zasilania {1}.
preempt: Ustaw domyślną stawkę pierwszeństwa.
unsafe: Max niebezpieczne kwanty.
poll: Max kwanty ankiet.
yield: Zaplanuj przesunięcie wydajności sondowania.
idlehalt: Zatrzymaj bezczynny wątek, aby umożliwić procesorowi przejście w tryb niskiej mocy {1}.
panic_io_port: W panice odczytanej z tego portu we / wy {0x0 do 0xffff}.
_fpu: Ogranicz funkcje procesora w czasie uruchamiania {387 / mmx / sse}.
disable high mem/2: preferuj wysoką pamięć}.
immediate_NMI: Wymusza natychmiastowy debugger NMI {1}.
-legacy: Wymuś tryb 32-bitowy starszego typu.
lcks: Zablokuj statystyki.
novmx: Brak emulacji altivec w Rosetta {1}.
max_valid_dma_addr: Maksymalny prawidłowy adres DMA.
maxbouncepool: Maksymalny rozmiar puli odrzuceń.
maxloreserve: Maksymalna niska rezerwa.
npvhash: Skrót do mapowania fizycznego na wirtualny.
wpkernel: Zapisz jądro ochrony {1}.
-no_shared_cr3: Wyłącz współdzieloną przestrzeń adresową jądra dla 64-bitowych użytkowników.
-pmap_trace: Włącz śledzenie jądra dla pmap.
_panicd_ip: IP serwera paniki.
_router_ip: IP routera.
panicd_port: Port serwera paniki.
-zc: Sprawdzanie elementu strefy wolnej.
mtxspin: Mutex spin (ppc).
vmmforce: Siła VMM (ppc).
fn: Force nap (ppc) (acpi) {0/1/2}.
pmsx: Eksperymentalny tryb krokowy zarządzania energią (ppc) {1}.
ctrc: Ustaw śledzenie na konkretną jednostkę centralną (ppc).
tb: Inny niż domyślny rozmiar bufora śledzenia (ppc).
wcte: Napisz włączanie włącznika czasowego (ppc).
mcklog: Wyczyść flagę kontroli maszyny (ppc).
mcksoft: Odzyskiwanie oprogramowania do sprawdzania maszyn (ppc).
ht_shift: Inny niż domyślny rozmiar tabeli skrótów (ppc) {1}.
zsize: Rozmiar strefy docelowej.
colors: Ustaw kolory VM.
fill: Wypełnij strony.
serialbaud: Ustaw szybkość transmisji szeregowej.
Opcje rozruchu z xnu/osfmk/i386/i386_init.c:
diag: Wyjście diagnostyczne.
serial: Szeregowa konsola diagnostyczna. Obsługa klawiatury szeregowej i / lub konsoli.
maxmem
Maksymalna pamięć do użycia. Ogranicza pamięć adresowalną do określonej ilości (np maxmem=32.).
cpus=1
Ogranicza liczbę aktywnych procesorów w systemie do ustawionego poziomu. Może to pomóc w oszczędzaniu energii, co prawdopodobnie nie będzie przydatne w wielu innych przypadkach, chyba że testujesz i programujesz.
himemory_mode
Służy do debugowania dużych konfiguracji pamięci fizycznej dla systemów ponad 4 GB. Tryby: 0 - wszystkie dostępne strony, 1 - wyłącz wysoką pamięć, 2 - preferuj wysoką pamięć.
immediate_NMI
Obsługa debugowania dla systemów ponad 4 GB poprzez wymuszenie natychmiastowego debuggera NMI.
urgency_notification_abstime
Inny:
bluetoothHostControllerSwitchBehavior( never/ always)
Powiedz sterownikowi Bluetooth, czy przełączyć się na klucz, który podłączyłeś. Aby ustawić domyślny klucz zewnętrzny nawet po ponownym uruchomieniu, użyj always.
smbios: Verbose SMBIOS (AppleSMBIOS.kext) {1}
acpi: Debuguj AppleACPIPlatform {1-8}
acpi_level: Poziom debugowania ACPI
acpi_layer: Warstwa debugowania ACPI
acpi_sleep: ACPI Sleep
nvdebug: Debugowanie NVDAResman
nvrm: NVDAResman
ndrv_debug_level: Poziom debugowania NDRV (NVDAResman)
pstep: Debugowanie kroku zasilania (ACPI_SMC)
hpet: AppleHPET
busratio(np. busratio=20): Używał procesora i7 w 10.5.6, po 10.5.7 nie potrzebuje x86osx .
Źródło: xnu-1228 / Boot Arguments
Stosowanie
Na przykład, gdy jesteś w trybie pojedynczym ( CMD- Spo dźwięku przy starcie), aby przejść do trybu awaryjnego i ustnie z dodatkowym wyjściem debugującym jądro do konsoli, spróbuj:
sudo nvram boot-args="-x -v debug=0x14e"
Aby dodać argument do istniejącego (bez przesłonięcia), spróbuj:
sudo nvram boot-args="-v $(nvram boot-args 2>/dev/null | cut -f 2-)"
Aby usunąć argumenty rozruchowe, uruchom:
sudo nvram boot-args=""
sudo nvram -d boot-args
Inne nieoficjalne parametry można znaleźć w kernelbinarnej wersji, np
$ 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
Lub sprawdź w plikach źródłowych Apple lub na GitHub, wyszukując PE_parse_boot_argn(który służy do analizy argumentów rozruchowych jądra).