books on zlib official

Grub recovery after Windows update

Yesterday I updated Windows 10, BIOS and some drivers of my Dell and couldn’t run Grub, just Windows Boot Manager. I re-installed Grub from Debian recovery without succes, Windows started directly after reboot.

First fix was copy /boot/efi/EFI/debian/grubx64.efi to /boot/efi/EFI/Microsoft/Boot/bootmgrfw.efi (with backup of original file, of course) and then Grub started. But why BIOS didn’t read /boot/efi/debian/grubx64.efi?

In BIOS (Boot Sequence menu) I had 1. option “debian” and File System List was “HD(1,GPT,D6E…)” what was wrong. I deleted this option and add new one with File System List “PciRoot(0x0)/Pci(0x17,0x0)/Sata(0x2,0x0)/HD(1,GPT,D6E…)” and correct File Name “\EFI\debian\grubx64.efi” and then Grub started work.

Then I reverted back “first fix”, rename back /boot/efi/EFI/Microsoft/Boot/bootmgrfw.efi.backup to /boot/efi/EFI/Microsoft/Boot/bootmgrfw.efi and Grub starts after reboot again.

NetworkManager changes WiFi MAC address

If your WiFi is managed by NetworkManager and it has random MAC address after reboot, you can disable it in /etc/NetworkManager/NetworkManager.conf:

[device]
wifi.scan-rand-mac-address=no

[connection]
# ethernet.cloned-mac-address=permanent
wifi.cloned-mac-address=permanent

[connection] section shouldn’t be necessary nor ethernet line (it is commented).

imapfilter

Tool to filtering e-mail. Can be installed via:

sudo apt install imapfilter

Example configuration in ~/.imapfilter/configu.lua:

local posvic_eu = IMAP {
server = 'mail.posvic.eu',
username = 'my@posvic.eu',
password = '',
ssl = 'ssl3',
}

local test = IMAP {
server = 'test.email.com',
username = 'my@email.com',
password = '',
ssl = 'ssl3',
}

function print_subjects(o)
for _, msg in ipairs(filter) do
mbox, uid = table.unpack(msg)
text = mbox[uid]:fetch_message()
print(string.match(text, 'Subject:[^\n]*'))
end
end

posvic_eu.INBOX:check_status()
posvic_eu.INBOX
:contain_from('beacon-monitor@post.cz')
:contain_subject('Beacon Monitor Disk')
:move_messages(posvic_eu['Trash'])

test.INBOX:check_status()
test.INBOX
:contain_from('support@2n.cz')
:contain_subject('Ticket#')
:move_messages(test['INBOX/Automat'])
test.INBOX
:contain_from('apps@crashlytics.com')
:contain_subject('Meeting Room')
:move_messages(test['INBOX/Automat'])