Es gibt keine offizielle Liste, die gebräuchlichen werden selbst in den Kernel kompiliert, andere können durch Kernel-Erweiterungen analysiert werden. Hier ist die Liste, die ich bisher gefunden habe.
Allgemeine Bootoptionen:
-v
: Booten Sie das System immer im Verbose-Modus, ohne dass Sie es gedrückt halten müssen CMD- Vbeim Start.
-x
: Starten Sie das System immer im abgesicherten Modus, ohne es Shiftbeim Start anhalten zu müssen .
f
: Alter abgesicherter Modus.
-s
: Starten Sie das System in den Einzelbenutzermodus ohne Halt zu benötigen CMD- Sbeim Start.
-F
- Bootdatei ignorieren.
iog
(zB iog=0x0
)
Dies kehrt den "Clamshell" -Modus für Apples Laptop-Systeme um. Wenn Sie das Display schließen, das System jedoch an einen externen Monitor und eine externe Tastatur anschließen, bleibt das System wach. Nach dem Ausführen dieses Befehls wird beim Anschließen eines externen Monitors die interne Anzeige deaktiviert. Dies kann in bestimmten Situationen hilfreich sein, z. B. wenn Sie Ihren Desktop spiegeln, die externe Anzeige jedoch mit einer höheren Auflösung ausführen möchten, als Ihr Laptop ausführen kann . CNET
arch
Ändert den Systemstart entweder auf den 32-Bit- ( i386
) oder den 64-Bit- ( x86_64
) Kernel. Beachten Sie, dass es sich bei den Kernel-Erweiterungen von Drittanbietern möglicherweise nur um 32-Bit- oder 64-Bit-Erweiterungen handelt.
Graphics Mode
: Abmessungen des VESA-Grafikmodus.
Text Mode
: Abmessungen des VGA-Textmodus.
Boot Graphics
: Grafik- oder Textmodus.
Quiet Boot
: Leiser Bootmodus.
MKext Cache
: Mkext-Cache-Datei.
Kernel Cache
: Kernel-Cache-Datei.
rd
: Root-Gerät.
boot-uuid
: Boot-UUID.
platform
: Plattformexperte {ACPI}.
config
: Alternative Konfigurationsliste config=foobar
laden (wird zB /Library/Preferences/SystemConfiguration/foobar.plist
statt geladencom.apple.Boot.plist
) x86osx .
serverperfmode=1
Unter OS X El Capitan 10.11 und höher können im Leistungsmodus zusätzliche Systemressourcen für Serveranwendungen reserviert werden.
DTrace:
dtrace_dof_mode
: DTrace DOF-Modi einstellen {0/1/2/3}.
DisableFBT
: Deaktivieren Sie FBT {1}.
IgnoreFBTBlacklist
: Ignoriere die Blacklist bestimmter kritischer Module {1}.
BSD:
-b
: Führen Sie nicht /etc/rc.boot aus.
-l
: Speicherverluste protokollieren ( osfmk/kern/startup.c
).
srv
: Booten Sie als Server {1}.
ncl
: Anzahl der Cluster.
nbuf
: Anzahl der Puffer für BSD.
kmem
: Kernelspeicherzugriff {1}.
trace
: Größe des Kernel-Trace-Puffers.
msgbuf
: Nachrichtenpuffer.
rp
: Root-Pfad.
mcache_flags
: Speicher-Cache-Flags.
mbuf_debug
: MBuf Debug {1}.
initmcl
: Init mbuf Cluster.
socket_debug
: Socket-Debug (netto).
net_affinity
: Netzaffinität (netto).
rte_debug
: Route Debug (net) {Flags}.
-rwroot_hack
: Root lesen / schreiben.
IOKit:
mseg
: Maximales Segment.
dart
: Entfernen Sie den vorhandenen Mapper.
io
: IO Kit Debug.
Mach:
keepsyms
: KLD / Adressensymbol-Übersetzung {1} nicht entladen.
debug
: Kernel Debug {Flags} (zB debug=0x14e
).
Aktiviert Kernel-Debugging-Funktionen, die zusätzliche Informationen anzeigen. Z.B
0x01
- Halten Sie beim Booten an und warten Sie, bis der Debugger eine Verbindung hergestellt hat
0x02
- Kernel-Debugging-Ausgabe an die Konsole senden
0x04
- Wechseln Sie bei einem nicht maskierbaren Interrupt in den Debugger
0x08
- Kernel-Debugging-Informationen an eine serielle Schnittstelle senden
0x10
- Machen Sie ddb zum Standard-Debugger
0x20
- Diagnoseinformationen in das Systemprotokoll ausgeben
0x40
- Lassen Sie den Debugger ARP und Route
0x80
- Unterstützt alte Versionen von GDB auf neueren Systemen
0x100
- Deaktivieren Sie den grafischen Panikdialog
nvram_paniclog
: Paniclog in NVRAM {1} übertragen.
pmsafe_debug
: Versetzen Sie die CPUs in den "sicheren" Stromversorgungsmodus {1}.
preempt
: Standardvorauszahlungsrate festlegen.
unsafe
: Max unsichere Quanten.
poll
: Max poll quanta.
yield
: Umfrageergebnisverschiebung einplanen.
idlehalt
: Halten Sie den inaktiven Thread an, damit die CPU in den Energiesparmodus {1} wechselt.
panic_io_port
: In Panik wird von diesem E / A-Port {0x0 bis 0xffff} gelesen.
_fpu
: Begrenzung der CPU-Funktionen für die Startzeit {387 / mmx / sse}.
disable high mem/2
: lieber high mem}.
immediate_NMI
: Sofortigen NMI-Debugger erzwingen {1}.
-legacy
: Erzwinge den alten 32-Bit-Modus.
lcks
: Statistiken sperren.
novmx
: Keine Altivec-Emulation in Rosetta {1}.
max_valid_dma_addr
: Max. Gültige DMA-Adresse.
maxbouncepool
: Max. Größe des Bounce-Pools.
maxloreserve
: Max niedrige Reserve.
npvhash
: Physikalischer zu virtuellem Mapping-Hash.
wpkernel
: Schreibschutzkernel {1}.
-no_shared_cr3
: Deaktiviert den gemeinsam genutzten Kernel-Adressraum für 64-Bit-Benutzer.
-pmap_trace
: Aktivieren Sie die Kernel-Traces für pmap.
_panicd_ip
: IP des Panikservers.
_router_ip
: IP des Routers.
panicd_port
: Port des Panikservers.
-zc
: Freizonenelementprüfung.
mtxspin
: Mutex-Spin (ppc).
vmmforce
: VMM-Kraft (ppc).
fn
: Nickerchen erzwingen (ppc) (acpi) {0/1/2}.
pmsx
: Experimenteller Power-Management-Stepper-Modus (ppc) {1}.
ctrc
: Legen Sie die Ablaufverfolgung auf eine bestimmte CPU (ppc) fest.
tb
: Nicht standardmäßige Ablaufverfolgungspuffergröße (ppc).
wcte
: Schreibe Kombinations-Timer-Freigabe (ppc).
mcklog
: Maschinenkontrollflag löschen (ppc).
mcksoft
: Wiederherstellung der Software zur Maschinenüberprüfung (ppc).
ht_shift
: Nicht standardmäßige Hash-Tabellengröße (ppc) {1}.
zsize
: Größe der Zielzone.
colors
: Legen Sie die VM-Farben fest.
fill
: Seiten füllen.
serialbaud
: Stellen Sie die serielle Baudrate ein.
Bootoptionen von xnu/osfmk/i386/i386_init.c
:
diag
: Diagnoseausgang.
serial
: Serielle Diagnosekonsole. Unterstützung für eine serielle Tastatur und / oder Konsole.
maxmem
Maximal zu verwendender Speicher. Es begrenzt den adressierbaren Speicher auf die angegebene Menge (zB maxmem=32
).
cpus=1
Beschränkt die Anzahl der aktiven Prozessoren im System auf die festgelegte Ebene. Dies kann helfen, Energie zu sparen, was für viele andere Anwendungen wahrscheinlich nicht sinnvoll ist, es sei denn, Sie testen und programmieren.
himemory_mode
Es wird zum Debuggen großer physischer Speicherkonfigurationen für Systeme mit mehr als 4 GB verwendet. Modi: 0 - alle Seiten verfügbar, 1 - hohe Mem deaktivieren, 2 - hohe Mem bevorzugen.
immediate_NMI
Debug-Unterstützung für über 4-GB-Systeme durch Erzwingen des sofortigen NMI-Debuggers.
urgency_notification_abstime
Andere:
bluetoothHostControllerSwitchBehavior
( never
/ always
)
Teilen Sie dem Bluetooth-Treiber mit, ob Sie zu dem Dongle wechseln möchten, den Sie angeschlossen haben. Verwenden Sie, um den externen Dongle auch nach dem Neustart als Standard zu verwenden always
.
smbios
: Ausführliches SMBIOS (AppleSMBIOS.kext) {1}
acpi
: Debuggen der AppleACPIP-Plattform {1-8}
acpi_level
: ACPI-Debug-Level
acpi_layer
: ACPI Debug Layer
acpi_sleep
: ACPI Schlaf
nvdebug
: NVDAResman-Debug
nvrm
: NVDAResman
ndrv_debug_level
: NDRV-Debug-Level (NVDAResman)
pstep
: Power Step Debug (ACPI_SMC)
hpet
: AppleHPET
busratio
(zB busratio=20
): Es verwendete i7 CPU in 10.5.6, nach 10.5.7 benötigt es nicht x86osx .
Quelle: xnu-1228 / Boot-Argumente
Verwendung
Wenn Sie sich beispielsweise im Einzelmodus befinden ( CMD- Snach dem Sound beim Start), um im abgesicherten Modus und ausführlich mit zusätzlicher Kernel-Debugging-Ausgabe auf der Konsole zu arbeiten, versuchen Sie Folgendes:
sudo nvram boot-args="-x -v debug=0x14e"
Versuchen Sie Folgendes, um das Argument in das vorhandene Argument einzufügen (ohne es zu überschreiben):
sudo nvram boot-args="-v $(nvram boot-args 2>/dev/null | cut -f 2-)"
Führen Sie Folgendes aus, um Startargumente zu entfernen:
sudo nvram boot-args=""
sudo nvram -d boot-args
Andere inoffizielle Parameter können in kernel
binär selbst gefunden werden, z
$ 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
Oder suchen Sie entweder in Apple-Quelldateien oder in GitHub nach PE_parse_boot_argn
(das zum Analysieren der Kernel-Boot-Argumente verwendet wird).
Googeln
boot-args site:developer.apple.com
gibt einige gute Ressourcen. Z.Bcpus=1
zwingt das System, nur einen einzigen CPU-Kern zu verwenden.srv=1
wird auf Xserves und Computern eingerichtet, auf denen Mac OS X Server installiert ist, und ändert angeblich einige Kernel-Optimierungsparameter, um einen serverfreundlichen Betrieb zu gewährleisten._panicd_ip=a.b.c.d
Hier können Sie die IP-Adresse eines Panic-Debug-Servers angeben, auf den Kernel-Core-Dumps geschrieben werden sollen.debug=0xH
(Wobei H eine 1-4-stellige Hexadezimalzahl ist) Ermöglicht das Festlegen von Kernel-Debugging-Flags aus dieser Liste:quelle
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/…Hier sind noch ein paar mehr :
quelle
Der Darwin-Kernel heißt "xnu", das Beste, was ich tun konnte, war, den Quellcode nach dem zu durchsuchen, wonach gesucht wurde.
Beispiel: OS X 10.8.5
https://gist.github.com/reklis/fa26d4e8db62d6eea9ea
Verfahren:
Gehen Sie hier (oder Ihre OS X-Version)
http://www.opensource.apple.com/release/mac-os-x-1085/
XNU-Tarball herunterladen, extrahieren, nach "parse_boot" suchen
cd xnu; grep -iRn parse_boot .
quelle
Nicht zu vergessen das immens Nützliche (wenn Sie auf Lion aktualisiert haben und Ihren Mac im geschlossenen Clamshell-Modus mit geöffnetem Deckel verwenden möchten)
Lob an: chenga.8
Was mich jedoch stört, ist, dass ich keine Erklärung dafür finde. Warum 0x0? Warum nicht 0x1? Wofür steht "iog" überhaupt?
Ich sollte darauf hinweisen, dass es auf meinem MacBook nicht funktioniert.
quelle
Apple scheint keine umfassende Liste zur Verfügung zu stellen. Nach einigen bekannten Optionen googeln und
site:apple.com
keine Ergebnisse erzielen. Durch Reduzieren der Liste der Optionen werden Artikel wie dieser und einige Quellcodes gefunden, in denen diese Argumente analysiert werden, die jedoch nicht vollständig sind.Sie könnten auch nach
PE_parse_boot_arg
einer Funktion suchen , die Boot-Argumente analysiert.Davon abgesehen gibt es im Web einige Seiten von Drittanbietern, auf denen die Benutzer die umfassendsten Informationen bereitstellen, die ich finden konnte, die jedoch möglicherweise veraltet sind:
quelle