Implement mkfs.fat32 filesystem formatter app (AI)
Create a user-space utility that formats block devices with FAT32. Writes all required on-disk structures sequentially: - Boot sector (BPB) with BIOS Parameter Block at sector 0 - FSInfo sector at sector 1 with free cluster count/hint - Backup boot sector at sector 6, backup FSInfo at sector 7 - Two FAT tables with entries 0-2 initialized (media marker, EOC markers, root directory cluster EOC) - Root directory cluster with volume label entry Geometry calculation: - Sectors per cluster chosen based on volume size (1-32) - FAT size computed using Microsoft's formula - Supports volumes from 128 sectors (~64K) upward Usage: mkfs.fat32 hdd1mbr1 14336 [LABEL] The total sector count is required since there is no stat() syscall yet. Users can find it via 'diskpart <dev> list'. Also checked off diskpart in README (committed previously).
This commit is contained in:
17
build.log
17
build.log
@@ -13,6 +13,13 @@ 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: mkfs.fat32
|
||||
/workspaces/claude-os/apps/mkfs.fat32/mkfs.fat32.c:56:13: warning: unused function 'print_hex' [-Wunused-function]
|
||||
56 | static void print_hex(uint32_t val) {
|
||||
| ^~~~~~~~~
|
||||
1 warning generated.
|
||||
/usr/bin/ld: warning: /workspaces/claude-os/build/apps_bin/mkfs.fat32.elf has a LOAD segment with RWX permissions
|
||||
Built: /workspaces/claude-os/build/apps_bin/mkfs.fat32 (5121 bytes)
|
||||
Building app: mount
|
||||
Built: /workspaces/claude-os/build/apps_bin/mount (992 bytes)
|
||||
Building app: sh
|
||||
@@ -23,7 +30,7 @@ Building app: sh
|
||||
Built: /workspaces/claude-os/build/apps_bin/sh (3428 bytes)
|
||||
[ 3%] Built target apps
|
||||
[ 6%] Generating CPIO initial ramdisk
|
||||
Generated initrd: 15040 bytes
|
||||
Generated initrd: 20288 bytes
|
||||
[ 6%] Built target initrd
|
||||
[ 96%] Built target kernel
|
||||
[100%] Generating bootable ISO image
|
||||
@@ -33,14 +40,14 @@ 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'
|
||||
Added to ISO image: directory '/'='/tmp/grub.bEiDnH'
|
||||
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
|
||||
xorriso : UPDATE : Thank you for being patient. Working since 0 seconds.
|
||||
ISO image produced: 5924 sectors
|
||||
Written to medium : 5924 sectors at LBA 0
|
||||
Writing to 'stdio:/workspaces/claude-os/release/claude-os.iso' completed successfully.
|
||||
|
||||
[100%] Built target iso
|
||||
|
||||
Reference in New Issue
Block a user