====== mountp ====== Mountet eine Partition per Partitionsnummer als VFS-Volume. → [[lyxos:shell|Shell-Übersicht]] · [[lyxos:cmd:mount|mount]] · [[lyxos:cmd:partinfo|partinfo]] · [[lyxos:cmd:vol|vol]] ---- ===== Syntax ===== mountp ^ Parameter ^ Typ ^ Beschreibung ^ | ''vol-id'' | int | Volume-ID, unter der die Partition angesprochen wird | | ''disk-id'' | int | Laufwerksnummer (0-basiert, aus ''diskinfo'') | | ''part-nr'' | int | Partitionsnummer (1-basiert, wie in ''partinfo'' angezeigt) | ---- ===== Beschreibung ===== ''mountp'' registriert eine Partition als VFS-Volume, ohne dass der genaue LBA-Startsektor bekannt sein muss. Die Partitionsnummer entspricht der ''#''-Spalte in der ''partinfo''-Ausgabe. Intern verwendet der Kernel ''DiskmapFindPart(disk_id, part_nr, out_sectors)'', das die Partition über die Diskmap sucht — unabhängig davon, ob die Disk MBR oder GPT verwendet. Gefundene LBA-Start- und Sektoranzahl werden an ''VfsMountDisk'' weitergegeben. **Ausgabe:** Mount disk part as vol ... OK Schlägt die Suche fehl (Partitionsnummer ungültig oder Disk nicht erkannt), erscheint ''FAIL''. **Beispiel:** lyx> partinfo 1 Disk 1: 524288 sectors (256 MB) MBR # Start End Sectors MB Type --- ---------- ---------- ---------- ------ --------------- - 0 2047 2048 1 free 1 2048 524287 522240 255 FAT32 MBR lyx> mountp 1 1 1 Mount disk 1 part 1 as vol 1... OK lyx> vol 1 Switch to vol 1... OK ---- ===== Syscall-Details ===== ^ Feld ^ Wert ^ | Syscall nr | 90 | | Kernel-Funktion | ''VfsMountByPart(vol_id, disk_id, part_no)'' | | a0 | vol_id | | a1 | disk_id | | a2 | part_no (1-basiert) | | Rückgabe | 0 = Erfolg, −1 = Fehler | **Kernel-Implementierung** (''kernel/vfs.lyx''): pub fn VfsMountByPart(vol_id: int64, disk_id: int64, part_no: int64): bool { var lba: int64 := DiskmapFindPart(disk_id, part_no, v_part_scratch); if (lba < 0) { return false; } return VfsMountDisk(vol_id, disk_id, lba); } ''v_part_scratch'' ist ein 8-Byte-Puffer in ''vfs.lyx'' (initialisiert in ''VfsInit'' via ''mmap''). ''DiskmapFindPart'' schreibt dort die Sektoranzahl hinein — sie wird beim reinen Mount-Vorgang nicht benötigt. **Shell-Implementierung** (''shell/shell.lyx''): fn lyx_mount_part(vol_id: int64, disk_id: int64, part_no: int64): int64 { poke64(g_r3sc + R3_OFF_NR, 90); poke64(g_r3sc + R3_OFF_A0, vol_id); poke64(g_r3sc + R3_OFF_A1, disk_id); poke64(g_r3sc + R3_OFF_A2, part_no); return lyx_trigger(); } fn cmd_mountp(b: int64, offset: int64): void { var vol_id: int64 := token_int(b, offset, 1); var disk_id: int64 := token_int(b, offset, 2); var part_no: int64 := token_int(b, offset, 3); r3_puts("Mount disk "); r3_puti(disk_id); r3_puts(" part "); r3_puti(part_no); r3_puts(" as vol "); r3_puti(vol_id); r3_puts("... "); var res: int64 := lyx_mount_part(vol_id, disk_id, part_no); if (res == 0) { r3_puts("OK\n"); } else { r3_puts("FAIL\n"); } } ---- ===== Partitionsnummerierung ===== Die Nummerierung in ''mountp'' ist identisch mit der ''#''-Spalte von ''partinfo''. Freie Bereiche und GPT-Metadaten-Bereiche (Typ ''GPT meta'') bekommen keine Nummer und zählen nicht: # Start End Sectors MB Type --- ---------- ---------- ---------- ------ --------------- - 0 33 34 0 free ← keine Nummer - 34 2047 2014 0 GPT meta ← keine Nummer 1 2048 206847 204800 100 ESP ← part-nr 1 2 206848 524287 317440 155 FAT32/Data ← part-nr 2 - 524288 524287 0 0 free ← keine Nummer ''mountp 2 1 2'' mountet in diesem Fall die FAT32/Data-Partition als Volume 2. ---- ===== Hinweise ===== * ''mountp'' scannt die Partitionstabelle bei jedem Aufruf neu — es gibt keinen Cache. * Das gemountete Volume ist nicht automatisch aktiv. ''vol '' ist danach nötig. * ''mkfat32'' und ''gpt'' mounten automatisch. ''mountp'' ist für Partitionen, die bereits formatiert sind und die man nach einem Neustart erneut einbinden möchte. ---- ===== Verwandte Befehle ===== | [[lyxos:cmd:partinfo|partinfo]] | Partitionsnummern anzeigen | | [[lyxos:cmd:mount|mount]] | Partition per LBA-Adresse mounten | | [[lyxos:cmd:vol|vol]] | Volume als aktiv setzen | | [[lyxos:cmd:gpt|gpt]] | GPT: alle Partitionen automatisch mounten | | [[lyxos:cmd:mkfat32|mkfat32]] | FAT32 formatieren + auto-mounten |