gapan / guefi Goto Github PK
View Code? Open in Web Editor NEWA GTK+3 frontend for efibootmgr
License: GNU General Public License v3.0
A GTK+3 frontend for efibootmgr
License: GNU General Public License v3.0
I zipped up the make & make installed program in case it helps. Error first, then console output from me trying to install, installing missing tools, then finally installing it, realizing it was basically installed but not in the app menu, and reinstalling it without custom path.
$ sudo ./guefi
Traceback (most recent call last):
File "/home/joshua/software/guefi/usr/sbin/./guefi", line 702, in <module>
app = GUEFI()
^^^^^^^
File "/home/joshua/software/guefi/usr/sbin/./guefi", line 653, in __init__
self.update_list()
File "/home/joshua/software/guefi/usr/sbin/./guefi", line 596, in update_list
self.uefi.update()
File "/home/joshua/software/guefi/usr/sbin/./guefi", line 125, in update
self.efi_mountpoint = self.get_efi_mountpoint()
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/joshua/software/guefi/usr/sbin/./guefi", line 63, in get_efi_mountpoint
p = subprocess.Popen(['findmnt', self.efi_partition],
^^^^^^^^^^^^^^^^^^
AttributeError: 'UEFI' object has no attribute 'efi_partition'. Did you mean: 'get_efi_partition'?
joshua@mx-Linux-KP9USMC:~/software/guefi/usr/sbin
$ gksu ./guefi
Starting ./guefi
(guefi:23864): Gtk-CRITICAL **: 02:12:34.020: _gtk_css_lookup_resolve: assertion '(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) ((provider)); GType __t = ((_gtk_style_provider_private_get_type ())); gboolean __r; if (!__inst) __r = (0); else if (__inst->g_class && __inst->g_class->g_type == __t) __r = (!(0)); else __r = g_type_check_instance_is_a (__inst, __t); __r; }))))' failed
/home/joshua/software/guefi/usr/sbin/guefi:643: Warning: g_object_set_data_full: assertion 'G_IS_OBJECT (object)' failed
builder.add_from_file('/usr/share/guefi/guefi.ui')
(guefi:23864): Gtk-ERROR **: 02:12:34.021: Can't create a GtkStyleContext without a display connection
/usr/bin/mx-pkexec: line 73: 23864 Trace/breakpoint trap pkexec /usr/bin/mx-pkexec "${@}"
joshua@mx-Linux-KP9USMC:~/software/guefi/usr/sbin
$
@@@@@@@@@@@@%*+--:------=+*%@@@@@@@@@@@@ -----------------------
@@@@@@@@@#=. .-+#%@@@@@%#*+--=#@@@@@@@@@ OS: MX x86_64
@@@@@@@+. .=%@@@@@@@@@@@@@@@@*-:+@@@@@@@ Host: MS-7972 2.0
@@@@@*. *@@@@@@@@@@@@@@@@@@@@@%-.*@@@@@ Kernel: 6.6.11-amd64
@@@@- -@@@@@@@@@@@@@@@@@@@@@@@#: -@@@@ Uptime: 44 mins
@@@: -@@@@@@@=.*@@@@@@@@@@@@%- = :@@@ Packages: 3622 (dpkg), 24 (flatpak)
@@= .@@@@@@@@%- :%@@@@@@@@@+ -%@# =@@ Shell: bash 5.2.15
@% +@@@@@@@@@@#. =@@@@@@*. .*@@@@. %@ Resolution: 1920x1080
@+ *@@@@@@*..*@@+ *@@%- =@@@@@@- +@ DE: Xfce 4.18
@= *@@@@%- -%@@- := -%@@@@@@@: +@ WM: Xfwm4
@+ :@@@= +@@= .#@@@@@@@@% *@ WM Theme: Matcha-dark-azul
@% +*. .: *@@#: +@@: @@ Theme: Matcha-dark-azul [GTK2/3]
@@+ :%@- :- :: +@@ Icons: Papirus-mxblue-darkpanes [GTK2], Papirus-Dark [GT
@@@- .=@@= -@@@ Terminal: xfce4-terminal
@@+. . +@@ Terminal Font: Liberation Mono 11
%=..:.................::...........:..-% CPU: Intel i7-7700K (8) @ 4.800GHz
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ GPU: AMD ATI Radeon RX 6700/6700 XT/6750 XT / 6800M/6850
Memory: 4041MiB / 15961MiB
joshua@mx-Linux-KP9USMC:/media/Data/Users/jr2/Downloads/Linux/software/guefi-0.2.2
$ make
for i in `ls po/*.po`; do \
msgfmt $i -o `echo $i | sed "s/\.po//"`.mo; \
done
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
make: *** [Makefile:10: mo] Error 127
joshua@mx-Linux-KP9USMC:/media/Data/Users/jr2/Downloads/Linux/software/guefi-0.2.2
$ make
for i in `ls po/*.po`; do \
msgfmt $i -o `echo $i | sed "s/\.po//"`.mo; \
done
intltool-merge po/ -d -u \
guefi.desktop.in guefi.desktop
make: intltool-merge: No such file or directory
make: *** [Makefile:16: desktop] Error 127
joshua@mx-Linux-KP9USMC:/media/Data/Users/jr2/Downloads/Linux/software/guefi-0.2.2
$ intltool-merge
Command 'intltool-merge' not found, but can be installed with:
sudo apt install intltool
joshua@mx-Linux-KP9USMC:/media/Data/Users/jr2/Downloads/Linux/software/guefi-0.2.2
$ make
for i in `ls po/*.po`; do \
msgfmt $i -o `echo $i | sed "s/\.po//"`.mo; \
done
intltool-merge po/ -d -u \
guefi.desktop.in guefi.desktop
Merging translations into guefi.desktop.
intltool-merge po/ -d -u \
guefi-kde.desktop.in guefi-kde.desktop
Merging translations into guefi-kde.desktop.
joshua@mx-Linux-KP9USMC:/media/Data/Users/jr2/Downloads/Linux/software/guefi-0.2.2
$ make
make: getcwd: No such file or directory
make: *** No targets specified and no makefile found. Stop.
joshua@mx-Linux-KP9USMC:/media/Data/Users/jr2/Downloads/Linux/software/guefi-0.2.2
$ cd ..
joshua@mx-Linux-KP9USMC:/media/Data/Users/jr2/Downloads/Linux/software
$ cd guefi-0.2.2
joshua@mx-Linux-KP9USMC:/media/Data/Users/jr2/Downloads/Linux/software/guefi-0.2.2
$ make
for i in `ls po/*.po`; do \
msgfmt $i -o `echo $i | sed "s/\.po//"`.mo; \
done
intltool-merge po/ -d -u \
guefi.desktop.in guefi.desktop
Merging translations into guefi.desktop.
intltool-merge po/ -d -u \
guefi-kde.desktop.in guefi-kde.desktop
Merging translations into guefi-kde.desktop.
joshua@mx-Linux-KP9USMC:/media/Data/Users/jr2/Downloads/Linux/software/guefi-0.2.2
$ sudo make install DESTDIR=~/software/guefi
[sudo] password for joshua:
install -d -m 755 /home/joshua/software/guefi/usr/share/icons/hicolor/scalable/apps/
install -m 644 icons/guefi.svg \
/home/joshua/software/guefi/usr/share/icons/hicolor/scalable/apps/
for i in 48 32 24 22 16; do \
install -d -m 755 \
/home/joshua/software/guefi/usr/share/icons/hicolor/${i}x${i}/apps/ \
2> /dev/null; \
install -m 644 icons/guefi-$i.png \
/home/joshua/software/guefi/usr/share/icons/hicolor/${i}x${i}/apps/guefi.png; \
done
for i in `ls po/*.po|sed "s/po\/\(.*\)\.po/\1/"`; do \
install -d -m 755 /home/joshua/software/guefi/usr/share/locale/$i/LC_MESSAGES; \
install -m 644 po/$i.mo /home/joshua/software/guefi/usr/share/locale/$i/LC_MESSAGES/guefi.mo; \
done
install -d -m 755 /home/joshua/software/guefi/usr/sbin
install -d -m 755 /home/joshua/software/guefi/usr/share/applications
install -d -m 755 /home/joshua/software/guefi/usr/share/guefi
install -d -m 755 /home/joshua/software/guefi/etc
install -m 755 src/guefi /home/joshua/software/guefi/usr/sbin/
install -m 644 src/guefi.ui /home/joshua/software/guefi/usr/share/guefi/
install -m 644 guefi.desktop /home/joshua/software/guefi/usr/share/applications/
install -m 644 guefi-kde.desktop /home/joshua/software/guefi/usr/share/applications/
joshua@mx-Linux-KP9USMC:/media/Data/Users/jr2/Downloads/Linux/software/guefi-0.2.2
$ sudo make install
install -d -m 755 //usr/share/icons/hicolor/scalable/apps/
install -m 644 icons/guefi.svg \
//usr/share/icons/hicolor/scalable/apps/
for i in 48 32 24 22 16; do \
install -d -m 755 \
//usr/share/icons/hicolor/${i}x${i}/apps/ \
2> /dev/null; \
install -m 644 icons/guefi-$i.png \
//usr/share/icons/hicolor/${i}x${i}/apps/guefi.png; \
done
for i in `ls po/*.po|sed "s/po\/\(.*\)\.po/\1/"`; do \
install -d -m 755 //usr/share/locale/$i/LC_MESSAGES; \
install -m 644 po/$i.mo //usr/share/locale/$i/LC_MESSAGES/guefi.mo; \
done
install -d -m 755 //usr/sbin
install -d -m 755 //usr/share/applications
install -d -m 755 //usr/share/guefi
install -d -m 755 //etc
install -m 755 src/guefi //usr/sbin/
install -m 644 src/guefi.ui //usr/share/guefi/
install -m 644 guefi.desktop //usr/share/applications/
install -m 644 guefi-kde.desktop //usr/share/applications/
joshua@mx-Linux-KP9USMC:/media/Data/Users/jr2/Downloads/Linux/software/guefi-0.2.2
$
Hello, it would be great if the Makefile provided a way to cleanly uninstall files. Thanks.
Could the main README show one screenshot?
if you have more than one HD and each has a efi sector, guefi needs to care about which hd and partition the entries are defined
for example this setup,
where the Ubuntu entry is on sda1 and the Slackware entry on sdb1
.....# skip tons of entries
Boot0018* Ubuntu HD(1,800,100000,d05fb60d-411c-4efe-9b02-236308280025)File(\EFI\ubuntu\shimx64.efi)/
Boot001B* Slackware HD(1,800,100000,2b6665be-f5e2-48f5-a374-fef13c6341b4)File(\EFI\Slackware\elilo.efi)
on that hard disks
blkid
/dev/sda1: UUID="DD4E-A4C8" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="d05fb60d-411c-4efe-9b02-236308280025"
/dev/sda2: UUID="9d1758a7-4b51-4d37-a8fd-5c26b12e2b39" TYPE="ext4" PARTUUID="e2043d11-89e1-47c9-9041-b1513c802602"
/dev/sda3: UUID="2baf1f3d-d55d-4276-9361-2f0fc923e5c0" TYPE="swap" PARTUUID="d6abd353-2872-4c35-a750-d2177d7dc2de"
/dev/sdb1: UUID="AC03-AD0D" TYPE="vfat" PARTUUID="2b6665be-f5e2-48f5-a374-fef13c6341b4"
/dev/sdb2: UUID="0a19e78f-1274-4159-adec-ffba1f455643" TYPE="ext4" PARTUUID="f158ceca-7d9f-4a0c-b0db-c96153ea73c7"
using guefi from Slackware to rename the Ubuntu entry to Ubuntu1604 will place the changed entry and let it point to the Slackware HD
this means that the Ubuntu1604 boot entry will exist but not working since it points to a wrong disk/partition, what is a somehow negative user experience.
creating the boot entry must be called with the right HD and the correct partition, in the given example /dev/sda and partition 1.
efibootmgr -c -w -l \\EFI\\ubuntu\\shimx64.efi -L "Ubuntu1604" -p 1 -d /dev/sda
I think what you need to do is
blkid
to get the disk partition ids ans spare themefibootmgr -v
to pars the output, match the diskid and remember on which disk/partition the entry livesor simply disable the edit/rename function for entries if there are more than one hd
or find some other solution
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.