NTP troubleshooting

The "reach" column

This column (from the output of ntpdc -p) shows the success of the most recent synchronization attempts as an octal number. The short answer is that a completely unreachable server will have 0 in this column, and the ideal value in the standard configuration is 377. You can use bc and/or Python to convert the octal number into its binary equivalent (for this example, what appears in the “reach” column is 175):

% echo 'obase=2; ibase=8; 175' | bc
% python -c 'print("{0:08b}".format(0175))'

There are a couple of things to note about these commands:

  • For bc: there are no leading zeroes in the output; that's why bc's output in this example is seven digits and the output from the Python one-liner is eight digits. The answer is still correct, you just have to remember to watch for that when interpreting the output.
  • For Python: you need to add the leading zero to the input value (i.e. to make 0175). That's standard notation for octal (in the same way that 0x is the prefix for hexadecimal and 0b is the prefix for binary) and is how Python knows that the input number is in octal instead of decimal. (You can add the leading zero in the bc command as well if you like, but there it's just a leading zero and bc will strip it…bc knows it's octal because of the ibase=8 statement.)

In both cases, the output means that the eight most recent sync attempts went as follows: a failure, followed by five successes, followed by a failure, and finally the most recent attempt which succeeded (you read the digits left-to-right).

The reference documentation for this feature is in RFC 1305 ("Network Time Protocol"), section 3.2.3 ("Peer Variables").

Hardware vendors


Based on https://forums.virtualbox.org/viewtopic.php?f=6&t=38646#p173539

Adapter Mode State Purpose
1 NAT on Internet Connectivity
2 Host-only on Private communication between host and guest that still works with no other networking
3 Bridged off Inbound connectivity from other LAN machines
4 Internal off Private connectivity between VMs



Disable image transition effects in the slideshow module:

echo "EffectsEnabled=false" >> ~/.kde/share/config/kslideshow.kssrc

Troubleshooting/fixing Akonadi database corruption


150521 10:41:58 [Note] Plugin 'FEDERATED' is disabled.
150521 10:41:58 InnoDB: The InnoDB memory heap is disabled
150521 10:41:58 InnoDB: Mutexes and rw_locks use GCC atomic builtins
150521 10:41:58 InnoDB: Compressed tables use zlib
150521 10:41:58 InnoDB: Initializing buffer pool, size = 80.0M
150521 10:41:58 InnoDB: Completed initialization of buffer pool
InnoDB: Error: checksum mismatch in data file ./ibdata1
150521 10:41:58 InnoDB: Could not open or create data files.
150521 10:41:58 InnoDB: If you tried to add new data files, and it failed here,
150521 10:41:58 InnoDB: you should now edit innodb_data_file_path in my.cnf back
150521 10:41:58 InnoDB: to what it was, and remove the new ibdata files InnoDB created
150521 10:41:58 InnoDB: in this failed attempt. InnoDB only wrote those files full of
150521 10:41:58 InnoDB: zeros, but did not yet use them in any way. But be careful: do not
150521 10:41:58 InnoDB: remove old data files which contain your precious data!
150521 10:41:58 [ERROR] Plugin 'InnoDB' init function returned error.
150521 10:41:58 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
150521 10:41:58 [ERROR] Unknown/unsupported storage engine: innodb
150521 10:41:58 [ERROR] Aborting

150521 10:41:58 [Note] /usr/sbin/mysqld: Shutdown complete

Base command lines

/usr/sbin/mysqld-akonadi --defaults-file=/home/john/.local/share/akonadi/mysql.conf --datadir=/home/john/.local/share/akonadi/db_data/ --socket=/home/john/.local/share/akonadi/socket-wopr/mysql.socket
mysqldump --defaults-file=/home/john/.local/share/akonadi/mysql.conf --socket=/home/john/.local/share/akonadi/socket-wopr/mysql.socket --events --flush-privileges
mysql --defaults-file=/home/john/.local/share/akonadi/mysql.conf --socket=/home/john/.local/share/akonadi/socket-wopr/mysql.socket
mysqladmin --defaults-file=/home/john/.local/share/akonadi/mysql.conf --socket=/home/john/.local/share/akonadi/socket-wopr/mysql.socket


$ innochecksum -v /home/john/.local/share/akonadi/db_data/ibdata1
file /home/john/.local/share/akonadi/db_data/ibdata1 = 169869312 bytes (10368 pages)...
checking pages in range 0 to 10367
page 0 invalid (fails log sequence number check)
$ grep InnoDB ~/.local/share/akonadi/db_data/*/*.frm
Binary file /home/john/.local/share/akonadi/db_data/akonadi/collectionattributetable.frm matches
Binary file /home/john/.local/share/akonadi/db_data/akonadi/collectionmimetyperelation.frm matches
Binary file /home/john/.local/share/akonadi/db_data/akonadi/collectionpimitemrelation.frm matches
Binary file /home/john/.local/share/akonadi/db_data/akonadi/collectiontable.frm matches
Binary file /home/john/.local/share/akonadi/db_data/akonadi/flagtable.frm matches
Binary file /home/john/.local/share/akonadi/db_data/akonadi/mimetypetable.frm matches
Binary file /home/john/.local/share/akonadi/db_data/akonadi/parttable.frm matches
Binary file /home/john/.local/share/akonadi/db_data/akonadi/pimitemflagrelation.frm matches
Binary file /home/john/.local/share/akonadi/db_data/akonadi/pimitemtable.frm matches
Binary file /home/john/.local/share/akonadi/db_data/akonadi/resourcetable.frm matches
Binary file /home/john/.local/share/akonadi/db_data/akonadi/schemaversiontable.frm matches
$ /usr/sbin/mysqld-akonadi --defaults-file=/home/john/.local/share/akonadi/mysql.conf --datadir=/home/john/.local/share/akonadi/db_data/ --socket=/home/john/.local/share/akonadi/socket-wopr/mysql.socket --innodb-force-recovery=1
$ mysqldump --defaults-file=/home/john/.local/share/akonadi/mysql.conf --socket=/home/john/.local/share/akonadi/socket-wopr/mysql.socket --events --flush-privileges akonadi | gzip -1 > akonadi.sql.gz
$ mysql --defaults-file=/home/john/.local/share/akonadi/mysql.conf --socket=/home/john/.local/share/akonadi/socket-wopr/mysql.socket
mysql> drop database akonadi;
Query OK, 11 rows affected (0.71 sec)

mysql> create database akonadi;
Query OK, 1 row affected (0.00 sec)

mysql> \q
$ gzip -dc akonadi.sql.gz | mysql --defaults-file=/home/john/.local/share/akonadi/mysql.conf --socket=/home/john/.local/share/akonadi/socket-wopr/mysql.socket akonadi
ERROR 1030 (HY000) at line 42: Got error -1 from storage engine
$ # line 42 is the first insert statement after creating the first table
$ # read error message about how you can't alter tables with --force-recovery...OK, but you'll let me drop a database?  NOT COOL BRO
$ mysqladmin --defaults-file=/home/john/.local/share/akonadi/mysql.conf --socket=/home/john/.local/share/akonadi/socket-wopr/mysql.socket shutdown
$ /usr/sbin/mysqld-akonadi --defaults-file=/home/john/.local/share/akonadi/mysql.conf --datadir=/home/john/.local/share/akonadi/db_data/ --socket=/home/john/.local/share/akonadi/socket-wopr/mysql.socket 
$ gzip -dc akonadi.sql.gz | mysql --defaults-file=/home/john/.local/share/akonadi/mysql.conf --socket=/home/john/.local/share/akonadi/socket-wopr/mysql.socket akonadi
$ # success!

Dell Remote Access Controller (DRAC) cheatsheet

Enumerating usernames

This is useful when you need to figure out which ID is root so you can change its password:


user_records=$(racadm get 'iDRAC.Users' | cut -d ' ' -f 1)

for user_record in ${user_records}; do
    username=$(racadm get "${user_record}" | awk -F '=' '/^UserName=/ { print $2; }')
    printf "%-14s %s\n" ${user_record} ${username:-<unset>}

Changing a user's password

The “2” in this example is the user ID, which you can find from the above enumeration loop (although “root” is usually ID 2).

racadm set 'iDRAC.Users.2.Password' "${new_drac_password}"

Getting rid of console logging

Systemd journal

Update /etc/systemd/journald.conf:

  • Set ForwardToConsole to no
  • If you're not turning it off entirely, set TTYPath
    • The default is /dev/console…perhaps set to /dev/tty1?

Kernel messages

Disable printing kernel messages to the console: dmesg -D (https://superuser.com/a/793692/128124)

Kernel command line: loglevel=0 (https://stackoverflow.com/questions/16390004)


Edit /etc/rsyslog.conf and remove lines that send things to the console; look for lines targeting /dev/console or /dev/sysmsg, for example.


gnulinux.txt · Last modified: 2018/10/23 11:23 by dlicious
Except where otherwise noted, content on this wiki is licensed under the following license: GNU Free Documentation License 1.3
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Run by Debian Driven by DokuWiki