The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 1,862 other subscribers

Archive for the ‘*nix’ Category

Verifying large sets of file hashes with md5sum

Posted by jpluimers on 2020/07/24

A few tips:

  1. Recursively getting all md5 sums from a source directory:

    cd /sourceDirectory
    find -type f \( -not -name "md5sum.txt" \) -exec md5sum '{}' \; > md5sum.txt

    .

  2. Checking the sums against a target directory

    cd /targetDirectory
    md5sum -c /sourceDirectory/md5sum.txt

    .

On some systems (this was an ESXi system which can’t run stuff from the console in parallel), you could optimise this using xargs for the generation and GNU parallel for the generation and checking. Both should be very similar:

GNU parallel is written to have the same options as xargs. If you write loops in shell, you will find GNU parallel may be able to replace most of the loops and make them run faster by running several jobs in parallel.

Via:

–jeroen

Posted in *nix, *nix-tools, bash, Power User | Leave a Comment »

Operant Conditioning by Software Bugs – Embedded in Academia

Posted by jpluimers on 2020/07/21

Good to remember both these:

[WayBack] Operant Conditioning by Software Bugs – Embedded in Academia which means when using a system, you subconsciously start behaving around it’s issues. This also happens when you the software you wrote the software for such a system: you hardly test the things that you broke.

The magic SysReq key on Linux systems running on PC-hardware allows you to sync/mount read-only/shutdown a system by keyboard (and many more options – see the Wikipedia list below). Do not forget to enable this as it is disabled by default. And remember that many laptops forego the SysReq key (as do Mac systems).

The order while holding Alt-SysReq down is S,U,B…

Both via [WayBack] Kristian Köhntopp – Google+

–jeroen

Read the rest of this entry »

Posted in *nix, *nix-tools, Development, Keyboards and Keyboard Shortcuts, Power User, Software Development, ThinkPad | Leave a Comment »

🔎Julia Evans🔍 auf Twitter: “an amazing directory: /proc… “

Posted by jpluimers on 2020/07/20

So cool: 🔎Julia Evans🔍 auf Twitter: “an amazing directory: /proc… “:

–jeroen

Posted in *nix, *nix-tools, Power User | Leave a Comment »

Eject USB drives / eject command – Unix & Linux Stack Exchange

Posted by jpluimers on 2020/07/20

I always thought than an umount /dev/sdX# for all partitions on /dev/sdX was enough for USB devices to be ejected, but there are three commands that (on most systems) actually power down USB drives (or USB to SD card adapters):

  • udisks --detach /dev/sdX (requires the udisks package which is obsolete)
  • eject /dev/sdX seems not to be enough on some systems; it is part of the util-linux package
  • udisksctl power-off -b /dev/sdX is equivalent to the udisks command; it is part of the udisks2 package.

These will ensure that the disk is not part of the fdisk --list output any more.

The opposite of these is sg_start, which is from the sg3_utils package.

Source: [WayBack] Eject USB drives / eject command – Unix & Linux Stack Exchange

On MacOS, you can use  diskutil eject /Volumes/<LABEL> (source: answer by efesaid on [WayBack] Eject USB drives / eject command – Unix & Linux Stack Exchange)

–jeroen

Posted in *nix, *nix-tools, Linux, openSuSE, Power User, SuSE Linux, Tumbleweed | Leave a Comment »

linux – ssh_exchange_identification: Connection closed by remote host (not using hosts.deny) – Unix & Linux Stack Exchange

Posted by jpluimers on 2020/07/17

I had this one day connecting to a guest:

debug3: send packet: type 20
debug1: SSH2_MSG_KEXINIT sent
Connection closed by 192.168.71.81 port 22

The cause was indeed a heavily overloaded box that would not respond in time to any actual data sent over network requests, but would accept the initial TCP connection.

Logging on the console also failed, but the memory and CPU usage on the wrapping host was out of the roof.

The only solution was to soft power-cycle the guest.

Very similar to:

You can also have a host who’s memory is so badly fragmented that it can’t allocate a page a contiguous memory to fork the process for hosting an SSH session.

In such a case, you can get either of the messages:

ssh_exchange_identification: read: Connection reset by peer

or:

Connection closed by aaa.bbb.ccc.ddd

depending on how far the host gets before it bails out.

If memory fragmenting is the apparent cause, the solution is to access the server via other means and to restart some of the pertinent services. I have found Apache and MySQL to be the culprit on VM’s since VM’s don’t have a swap partition. Failing that, reboot the host.

Via: [WayBacklinux – ssh_exchange_identification: Connection closed by remote host (not using hosts.deny) – Unix & Linux Stack Exchange

–jeroen

Posted in *nix, *nix-tools, Power User, ssh/sshd | Leave a Comment »

openSUSE forums tips

Posted by jpluimers on 2020/07/17

A few tips from posting to the openSUSE forums, learned from banging my head to the wall too often.

  • They are at https://forums.opensuse.org/forum.php
  • The forum software can be very slow at times taking ~tens of seconds for loading a post:
    • loading multiple posts or pages of posts you are interested in multiple tabs speeds up your reading a lot
  • Answers on the post often are along the form “has been answered before” without pointing to the actual link, even if the post is marked with a read icon, for instance in [WayBack] No option to “keep me logged in on this device” with Novell/openSUSE login?
  • Your email is not your username, so do not use it during logon: [WayBack] Lousy log in
  • The search function in the forum is horrible.
  • The forum software is proprietary (vBulletin – Wikipedia) and has a
  • When writing/replying to posts:
    1. Edit your answer off-line, because
      • you will automatically be logged off even if the forum indicates you are still logged on (there is no count down of the activity timer), see
      • when you re-logon, your carefully edited text has been lost from the cache
    2. Never use formatting, either auto-introduced, or introduced while pasting, avoid BB-code
      1. Reasoning
      2. Though the forum supports BB code, NNTP news readers do not, and the added formatting gives quite a mess
      3. Use the text (“Source mode”) version of the editor, by first clicking the left most button: “Source”

        • After this, the third and fourth button get greyed out:
      4. Remove formatting button is the second from the left (in both text and WYSIWIG mode): “Remove format”
      5. If you are in WYSIWIG mode, then always paste using the third button from the left that strips formatting: “Paste as plain text”
      6. NEVER EVER paste with formatting with the fourth button from the left: “Paste from Word”

–jeroen

Posted in *nix, Linux, openSuSE, Power User, SuSE Linux, Tumbleweed | Leave a Comment »

GitHub – gamelinux/passivedns: A network sniffer that logs all DNS server replies for use in a passive DNS setup

Posted by jpluimers on 2020/07/15

Cool tool: [WayBackGitHub – gamelinux/passivedns: A network sniffer that logs all DNS server replies for use in a passive DNS setup via [WayBack] How to log all my DNS queries? – Unix & Linux Stack Exchange (thanks mxmlnkn!).

It listens on port 53 for DNS requests then logs them to a file on regular intervals aggregating similar requests.

Usage is simple:

Read the rest of this entry »

Posted in *nix, *nix-tools, Development, DevOps, Infrastructure, Linux, openSuSE, Power User, SuSE Linux, Tumbleweed | Leave a Comment »

Marrying U-Boot, uEFI and grub2 – Alexander Graf – openSUSE…

Posted by jpluimers on 2020/07/13

A very insightful talk: “Marrying U-Boot, uEFI and grub2 – Alexander Graf – openSUSE…”

Booting is hard. Booting in the ARM world is even harder. State of the art are a dozen different boot loaders that may or may not deserve that name. Each gets configured differently and each has its own pros and cons.

As a distribution this is a nightmare. Configuring each and every one of them complicates code that really should be very simple.

To solve the problem, we can just add another layer of abstraction (grub2) on top of another layer of abstraction (uEFI) on top of another layer of abstraction (u-boot). Follow me on a journey on how all those layers can make life easier for the distribution and how much fun uEFI really is.

After this talk, you will know how ARM systems boot, what uEFI really means, how uEFI binaries interact with firmware and how we are going to move to uEFI based boot on openSUSE for ARM.

Usually known as agraf on-line, [WayBack] Alexander Graf – Open IoT & ELC 2017 is an impressive guy:

Alexander Graf

SUSE
KVM Wizard
Nürnberg Area, Germany
Alexander started working for SUSE about 9 years ago. Since then he worked on fancy things like SUSE Studio, QEMU, KVM and openSUSE on ARM. Whenever something really useful comes to his mind, he tends to implement it. Among others he did Mac OS X virtualization using KVM, nested SVM, KVM on PowerPC and a lot of work in QEMU for openSUSE on ARM. He is the upstream maintainer of KVM for PowerPC, QEMU for PowerPC and QEMU for S390x.

Slides: [WayBack] Marrying U-Boot, UEFI and grub.pdf

There are 2 videos on YouTube (view them below):

A few things I learned

Boot sequence:

  1. Raspberry Pi has a tiny boot ROM
  2. It loads the firmware in the GPU (for Raspberry this is a Raspberry Foundation provided binary)
  3. The firmware loads U-Boot
  4. U-Boot loads grub2
  5. grub2 can have many modules (like file system drivers) and loads the kernel

Alexander pushed the U-Boot stuff up stream, but the FreeBSD team was the first to actually boot a full OS from it.

Relations:

  • uEFI/EFI is a set of specs that define the API
  • U-Boot is the firmware implementing uEFI, so your machine behaves as a PC making booting a lot more standardised, starting at handing off to a regular grub2 boot process
  • U-Boot loads grub2

U-boot:

–jeroen

References:

Images

Read the rest of this entry »

Posted in *nix, *nix-tools, openSuSE, Power User, SuSE Linux, Tumbleweed | Leave a Comment »

openSUSE:Standards Rpm Metadata – openSUSE: Repository layout

Posted by jpluimers on 2020/07/09

For my link archive: [WayBack] openSUSE:Standards Rpm Metadata – openSUSE: Repository layout.

It is not fully up to date any more on primary.xml.gz, so here are my notes for the aarch64 version of Tumbleweed:

  1. Inspect http://download.opensuse.org/ports/aarch64/tumbleweed/repo/oss/repodata/repomd.xml [WayBack] for the name of *-primary.xml.gz (in this case http://download.opensuse.org/ports/aarch64/tumbleweed/repo/oss/repodata/d701c298b21d0b995c9560f9cfcc84685cb916deacc4f4c4a613a9b9d8f5aa57-primary.xml.gz [WayBack]
  2. Download that .gz file and uncompress it
  3. Inspect the *-primary.xml from it, look inside the metatadata root element for a package having a name element with value openSUSE-release: that package element now has a version element having a ver attribute containing the version text.

–jeroen

Posted in *nix, *nix-tools, Linux, openSuSE, Power User, SuSE Linux, Tumbleweed | Leave a Comment »

linux – How do I use sudo to redirect output to a location I don’t have permission to write to? – Stack Overflow

Posted by jpluimers on 2020/07/09

Various ways are explained at [WayBack] linux – How do I use sudo to redirect output to a location I don’t have permission to write to? – Stack Overflow.

Some are for simple commands and can be a one liner (for instance using tee, or executing a secondary shell).

Others are more suited for longer command sequences.

–jeroen

Posted in *nix, *nix-tools, bash, bash, Development, Power User, Scripting, Software Development | Leave a Comment »