1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-28 18:37:35 +00:00

PartitionEditor: Add the beginnings of a partition editor :^)

This adds a new application PartitionEditor which will eventually be
used to create and edit partition tables. Since LibPartition does not
know how to write partition tables yet, it is currently read-only.

Devices are discovered by scanning /dev for block device files.
Since block devices are chmod 600, PartitionEditor be must run as root.

By default Serenity uses the entire disk for the ext2 filesystem
without a partition table. This isn't useful for testing as the
partition list for the default disk will be empty. To test properly,
I created a few disk images using various partitioning schemes
(MBR, EBR, and GPT) and attached them using the following command:

export SERENITY_EXTRA_QEMU_ARGS="
  -drive file=/path/to/mbr.img,format=raw,index=1,media=disk
  -drive file=/path/to/ebr.img,format=raw,index=2,media=disk
  -drive file=/path/to/gpt.img,format=raw,index=3,media=disk"
This commit is contained in:
Samuel Bowman 2022-06-27 22:48:30 -04:00 committed by Linus Groh
parent 7b8088c78d
commit 7a8953a833
7 changed files with 256 additions and 0 deletions

View file

@ -0,0 +1,26 @@
@GUI::Widget {
fill_with_background_color: true
layout: @GUI::VerticalBoxLayout {}
@GUI::ToolbarContainer {
@GUI::Toolbar {
layout: @GUI::HorizontalBoxLayout {
margins: [0, 4]
}
@GUI::Label {
text: "Device: "
autosize: true
}
@GUI::ComboBox {
name: "device_combobox"
fixed_width: 100
}
}
}
@GUI::TableView {
name: "partition_table_view"
}
}