ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/pbcdedit/pbcdedit
(Generate patch)

Comparing pbcdedit/pbcdedit (file contents):
Revision 1.73 by root, Sun Sep 15 01:44:37 2019 UTC vs.
Revision 1.76 by root, Tue Aug 9 11:44:54 2022 UTC

19# along with this program. If not, see <https://www.gnu.org/licenses/>. 19# along with this program. If not, see <https://www.gnu.org/licenses/>.
20# 20#
21 21
22use 5.016; # numerous features need 5.14, __SUB__ needs 5.16 22use 5.016; # numerous features need 5.14, __SUB__ needs 5.16
23 23
24our $VERSION = '1.4'; 24our $VERSION = '1.5';
25our $JSON_VERSION = 3; # the version of the json objects generated by this program 25our $JSON_VERSION = 3; # the version of the json objects generated by this program
26 26
27our $CHANGELOG = <<EOF; 27our $CHANGELOG = <<EOF;
28 28
291.5 Mon Nov 25 15:54:34 CET 2019
29 - add "del" edit instruction. 30 - add "del" edit instruction.
30 - work around lsblk bug sometimes giving "dos" pttype for gpt partitions. 31 - work around lsblk bug sometimes giving "dos" pttype for gpt partitions.
31 - bootmenupolicy in synopsis must be set to 0 to get the text menu. 32 - bootmenupolicy in synopsis must be set to 0 to get the text menu.
32 - minor doc fxes. 33 - minor doc fxes.
34 - disable use of perldoc for help, doesn't work well.
33 35
341.4 Thu Aug 22 10:48:22 CEST 2019 361.4 Thu Aug 22 10:48:22 CEST 2019
35 - new "create" subcommand. 37 - new "create" subcommand.
36 - "create" and "edit" try to save and restore ownership/permissions 38 - "create" and "edit" try to save and restore ownership/permissions
37 of bcd hives when writing the new file. 39 of bcd hives when writing the new file.
331 333
332=head2 The C<meta> key 334=head2 The C<meta> key
333 335
334The C<meta> key is not stored in the BCD data store but is used only 336The C<meta> key is not stored in the BCD data store but is used only
335by PBCDEDIT. It is always generated when exporting, and importing will 337by PBCDEDIT. It is always generated when exporting, and importing will
336be refused when it exists and the version stored inside doesn't store 338be refused when it exists and the version stored inside doesn't match
337the JSON schema version of PBCDEDIT. This ensures that different and 339the JSON schema version of PBCDEDIT. This ensures that different and
338incompatible versions of PBCDEDIT will not read and misinterpret each 340incompatible versions of PBCDEDIT will not read and misinterpret each
339others data. 341others data.
340 342
341=head2 The object keys 343=head2 The object keys
350 352
351Some of these GUIDs are fixed well known GUIDs which PBCDEDIT will decode 353Some of these GUIDs are fixed well known GUIDs which PBCDEDIT will decode
352into human-readable strings such as C<{globalsettings}>, which is the same 354into human-readable strings such as C<{globalsettings}>, which is the same
353as C<{7ea2e1ac-2e61-4728-aaa3-896d9d0a9f0e}>. 355as C<{7ea2e1ac-2e61-4728-aaa3-896d9d0a9f0e}>.
354 356
355Each BCD, object has an associated type. For example, 357Each BCD object has an associated type. For example,
356C<application::osloader> for objects loading Windows via F<winload.exe>, 358C<application::osloader> for objects loading Windows via F<winload.exe>,
357C<application::bootsector> for real mode applications and so on. 359C<application::bootsector> for real mode applications and so on.
358 360
359The type of a object is stored in the pseudo BCD element C<type> (see next 361The type of a object is stored in the pseudo BCD element C<type> (see next
360section). 362section).
711 713
712Probably not yet implemented. Tell me of your needs... 714Probably not yet implemented. Tell me of your needs...
713 715
714=back 716=back
715 717
718=back
719
716=head4 Examples 720=head4 Examples
717 721
718This concludes the syntax overview for device elements, but probably 722This concludes the syntax overview for device elements, but probably
719leaves many questions open. I can't help with most of them, as I also have 723leaves many questions open. I can't help with most of them, as I also have
720many questions, but I can walk you through some actual examples using more 724many questions, but I can walk you through some actual examples using more
721complex aspects. 725complex aspects.
726
727=over
722 728
723=item C<< locate=<block=vhd,<block=file,<locate=<null>,path,\disk.vhdx>,\disk.vhdx>>,element,path >> 729=item C<< locate=<block=vhd,<block=file,<locate=<null>,path,\disk.vhdx>,\disk.vhdx>>,element,path >>
724 730
725Just like with C declarations, you best treat device descriptors as 731Just like with C declarations, you best treat device descriptors as
726instructions to find your device and work your way from the inside out: 732instructions to find your device and work your way from the inside out:
797 803
798I don't know what the purpose of the C<< <1> >> flag value is, but it 804I don't know what the purpose of the C<< <1> >> flag value is, but it
799seems to be always there on this kind of entry. 805seems to be always there on this kind of entry.
800 806
801If you have some good examples to add here, feel free to mail me. 807If you have some good examples to add here, feel free to mail me.
808
809=back
802 810
803 811
804=head1 EDITING BCD STORES 812=head1 EDITING BCD STORES
805 813
806The C<edit> and C<parse> subcommands allow you to read a BCD data store 814The C<edit> and C<parse> subcommands allow you to read a BCD data store
2565# command line parser 2573# command line parser
2566 2574
2567our %CMD = ( 2575our %CMD = (
2568 help => sub { 2576 help => sub {
2569 require Pod::Usage; 2577 require Pod::Usage;
2570 Pod::Usage::pod2usage (-verbose => 2); 2578 Pod::Usage::pod2usage (-verbose => 2, -quotes => "none", -noperldoc => 1);
2571 }, 2579 },
2572 2580
2573 objects => sub { 2581 objects => sub {
2574 my %rbcd_types = reverse %bcd_types; 2582 my %rbcd_types = reverse %bcd_types;
2575 $_ = sprintf "%08x", $_ for values %rbcd_types; 2583 $_ = sprintf "%08x", $_ for values %rbcd_types;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines