Inhaltsverzeichnis

part

Schreibt einen MBR-Partitionseintrag auf ein Laufwerk.

Shell-Übersicht · diskinfo · mkfat32


Syntax

part <disk-id> <lba-start> <lba-end>

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 <disk_id> LBA <lba_start>..<lba_end> (<sectors> 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

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

mkfat32 Partition als FAT32 formatieren
partinfo Partitionstabelle anzeigen (prüft Ergebnis)
mountp Partition per Nummer mounten
diskinfo Laufwerke auflisten