====== part ====== Schreibt einen MBR-Partitionseintrag auf ein Laufwerk. → [[lyxos:shell|Shell-Übersicht]] · [[lyxos:cmd:diskinfo|diskinfo]] · [[lyxos:cmd:mkfat32|mkfat32]] ---- ===== Syntax ===== part ^ Parameter ^ Typ ^ Beschreibung ^ | ''disk-id'' | int | Laufwerksnummer (0-basiert, aus ''diskinfo'') | | ''lba-start'' | int | Erster Sektor der Partition | | ''lba-end'' | int | Letzter Sektor der Partition (inklusive) | Die Shell berechnet ''sector_count = lba_end − lba_start + 1'' und übergibt diese Zahl an den Kernel. ---- ===== Beschreibung ===== ''part'' schreibt einen FAT32-Partitionseintrag in **MBR-Slot 0** (Byte-Offset 446 im MBR-Sektor, LBA 0). Es werden immer Slot 0 und Partitionstyp ''0x0C'' (FAT32 LBA) verwendet. Der Befehl überschreibt einen eventuell vorhandenen Eintrag in Slot 0 ohne Rückfrage. **Ausgabe-Format:** Partitioning disk LBA .. ( sectors)... OK Schlägt der Kernel-Schreibzugriff fehl, erscheint stattdessen ''FAIL''. **Beispiel:** lyx> part 1 2048 524287 Partitioning disk 1 LBA 2048..524287 (522240 sectors)... OK ---- ===== Syscall-Details ===== ^ Feld ^ Wert ^ | Syscall nr | 83 | | Kernel-Funktion | ''VfsMkPart(disk_id, lba_start, sector_count)'' | | a0 | disk_id | | a1 | lba_start | | a2 | sector_count (= lba_end − lba_start + 1) | | Rückgabe | 0 = Erfolg, −1 = Fehler | | Partitionstyp | 0x0C (FAT32 LBA) | | MBR-Slot | immer Slot 0 (Offset 446) | **Shell-Implementierung** (''shell/shell.lyx''): fn cmd_part(b: int64, offset: int64): void { var disk_id: int64 := token_int(b, offset, 1); var lba_start: int64 := token_int(b, offset, 2); var lba_end: int64 := token_int(b, offset, 3); var sectors: int64 := lba_end - lba_start + 1; r3_puts("Partitioning disk "); r3_puti(disk_id); r3_puts(" LBA "); r3_puti(lba_start); r3_puts(".."); r3_puti(lba_end); r3_puts(" ("); r3_puti(sectors); r3_puts(" sectors)... "); var res: int64 := lyx_mkpart(disk_id, lba_start, sectors); if (res == 0) { r3_puts("OK\n"); } else { r3_puts("FAIL\n"); } } ---- ===== Hinweise ===== * **Nur Slot 0**: LyxOS unterstützt aktuell nur einen MBR-Partition-Eintrag. Slot 1–3 werden nicht geschrieben. * **Partitionstyp fest**: Der Typ ist immer 0x0C (FAT32 mit LBA). Andere Typen lassen sich nicht über ''part'' setzen. * **Kein Überschreibschutz**: Vorhandene MBR-Einträge in Slot 0 werden ohne Warnung überschrieben. * **GPT-Disks**: Auf GPT-formatierten Laufwerken macht ein MBR-Eintrag keinen Sinn — ''partinfo'' zeigt danach inkonsistente Ergebnisse. GPT-Partitionen werden über ''gpt'' gemountet, nicht über ''part''. * **Typischer Workflow**: 1. part 1 2048 524287 → MBR-Eintrag schreiben 2. mkfat32 1 1 → Partition #1 als FAT32 formatieren (nutzt part-Eintrag) 3. vol 1 → zu Volume 1 wechseln ---- ===== Verwandte Befehle ===== | [[lyxos:cmd:mkfat32|mkfat32]] | Partition als FAT32 formatieren | | [[lyxos:cmd:partinfo|partinfo]] | Partitionstabelle anzeigen (prüft Ergebnis) | | [[lyxos:cmd:mountp|mountp]] | Partition per Nummer mounten | | [[lyxos:cmd:diskinfo|diskinfo]] | Laufwerke auflisten |