Create a user-space diskpart utility that can view and modify MBR
partition tables on block devices accessible through /dev.
Features:
- list: displays all 4 partition slots with type, LBA start, size
- create <slot> <type> <start> <sectors>: creates a new partition
- delete <slot>: removes a partition entry
- activate/deactivate <slot>: sets or clears the bootable flag
The tool reads sector 0 (MBR) via VFS open/read, modifies the
partition table in memory, then writes it back via open/write.
Supports hex type codes and provides human-readable type names
for common partition types (FAT12/16/32, Linux, NTFS, etc.).
Usage: diskpart hdd1 create 1 0C 2048 14336
diskpart hdd1 list
diskpart hdd1 delete 2
47 lines
2.1 KiB
Plaintext
47 lines
2.1 KiB
Plaintext
[ 3%] Building user-mode applications
|
|
Building app: cat
|
|
Built: /workspaces/claude-os/build/apps_bin/cat (310 bytes)
|
|
Building app: diskpart
|
|
/usr/bin/ld: warning: /workspaces/claude-os/build/apps_bin/diskpart.elf has a LOAD segment with RWX permissions
|
|
Built: /workspaces/claude-os/build/apps_bin/diskpart (8406 bytes)
|
|
Building app: env-test
|
|
/usr/bin/ld: warning: /workspaces/claude-os/build/apps_bin/env-test.elf has a LOAD segment with RWX permissions
|
|
Built: /workspaces/claude-os/build/apps_bin/env-test (389 bytes)
|
|
Building app: fork-test
|
|
Built: /workspaces/claude-os/build/apps_bin/fork-test (132 bytes)
|
|
Building app: hello-world
|
|
Built: /workspaces/claude-os/build/apps_bin/hello-world (49 bytes)
|
|
Building app: ls
|
|
Built: /workspaces/claude-os/build/apps_bin/ls (250 bytes)
|
|
Building app: mount
|
|
Built: /workspaces/claude-os/build/apps_bin/mount (992 bytes)
|
|
Building app: sh
|
|
/workspaces/claude-os/apps/sh/sh.c:167:17: warning: unused variable 'type' [-Wunused-variable]
|
|
167 | int32_t type = readdir(resolved, 0, name);
|
|
| ^~~~
|
|
1 warning generated.
|
|
Built: /workspaces/claude-os/build/apps_bin/sh (3428 bytes)
|
|
[ 3%] Built target apps
|
|
[ 6%] Generating CPIO initial ramdisk
|
|
Generated initrd: 15040 bytes
|
|
[ 6%] Built target initrd
|
|
[ 96%] Built target kernel
|
|
[100%] Generating bootable ISO image
|
|
xorriso 1.5.6 : RockRidge filesystem manipulator, libburnia project.
|
|
|
|
Drive current: -outdev 'stdio:/workspaces/claude-os/release/claude-os.iso'
|
|
Media current: stdio file, overwriteable
|
|
Media status : is blank
|
|
Media summary: 0 sessions, 0 data blocks, 0 data, 126g free
|
|
Added to ISO image: directory '/'='/tmp/grub.MJcmop'
|
|
xorriso : UPDATE : 581 files added in 1 seconds
|
|
Added to ISO image: directory '/'='/workspaces/claude-os/build/isodir'
|
|
xorriso : UPDATE : 586 files added in 1 seconds
|
|
xorriso : NOTE : Copying to System Area: 512 bytes from file '/usr/lib/grub/i386-pc/boot_hybrid.img'
|
|
xorriso : UPDATE : 96.99% done
|
|
ISO image produced: 5922 sectors
|
|
Written to medium : 5922 sectors at LBA 0
|
|
Writing to 'stdio:/workspaces/claude-os/release/claude-os.iso' completed successfully.
|
|
|
|
[100%] Built target iso
|