Notes on bacula and vchanger

I’ve recently been experimenting with using bacula and vchanger to push data from a NAS to spare hard disks as a form of “tape backup”.

The tutorial at is a nice tutorial to follow. It proposes to use autofs to automatically mount encrypted disks when they are connected to the system. While this worked fine, I found that I wasn’t achieving expected write speeds.

I was seeing performance like:

Which is far below what USB 3.0 can carry.

It turned out after some debugging that autofs was the culprit. With autofs disabled, the results were more in line with expectations:

Set-up: Ubuntu 18.04 LTS, USB3.0 HD dock, old WD Blue 5400rpm disk.

Steps to use systemd automount

The way that systemd shows the mount directory even if the disk is not mounted is different from autofs. Therefore, in your vchanger magazine line in vchanger.conf, it is recommended to make use of a subdirectory, e.g.:

magazine = "/mnt/vchanger/9140c104-9ddd-451d-b933-fe1df02e1234/data"

In your /etc/fstab you will need something like:

/dev/disk/by-uuid/9140c104-9ddd-451d-b933-fe1df02e1234 /mnt/vchanger/0707a287-c2d5-4512-8fd2-b0dad2094b61 btrfs defaults,compress=lzo,noauto,x-systemd.automount,x-systemd.idle-timeout=10,x-systemd.device-timeout=0.1s,x-systemd.mount-timeout=10

Important flags used:

  • x-systemd.automount,x-systemd.idle-timeout=10: when the disk has been unused for 10 seconds, unmount the disk (same as in autofs);
  • x-systemd.device-timeout=0.1s: systemd will block any operations on the target mount directory until this timeout expires. Therefore, it is recommended to set this to a low value, especially if you have many magazines.

I’ve used btrfs for its data corruption detection capabilities, but the filesystem chosen is of course irrelevant for the automounting.

Whenever making changes to the /etc/fstab in this manner, run these commands to have the settings take effect:

systemctl daemon-reload
systemctl restart


Status of OneNote compatibility Linux (wine/CrossOver)

While both wine and CrossOver have claimed support for Microsoft Office running on Linux, the reality is more mixed and depends on your definition of what is included in Office.

Yes, the core applications Microsoft Word, Excel and PowerPoint work. But in my interpretation, Microsoft OneNote is also definitely part of the Office suite and support for OneNote is unfortunately still very limited. My experience with OneNote under Linux is as follows.

OneNote 2013 installation bug on wine (is now fixed).
Version Status 
OneNote 2016 Limited It will install and run, but it will not allow you to use notebooks stored on SharePoint servers or on OneDrive. Collaboration is therefore limited and you can only use locally stored notebooks.
OneNote 2013 Limited It will install and run, but it will not allow you to use notebooks stored on SharePoint servers or on OneDrive. Collaboration is therefore limited and you can only use locally stored notebooks.
OneNote 2010 Limited It will install and run, but it will not allow you to use notebooks stored on SharePoint servers or on OneDrive. Collaboration is therefore limited and you can only use locally stored notebooks.

Update Dec. 2019:  updated the table to reflect that OneNote 2013 and 2016 will now actually start, as announced here. I’ve also tried anbox as seen below.

Anbox is an android container environment for Linux. Therefore, it can also run the free OneNote app that Microsoft publishes in the Google Play Store.

Installation of Anbox is simple (I used the instructions on the ArchLinux wiki, but there is also a snap package). If you install the version that includes the Google Play Store, then you can easily install the free OneNote app:

My experience was, however, that it’s not yet a replacement:

  • Typing is not instantaneous
  • The app crashes often

I did not yet fully test copy pasting functionality (plain, HTML, images).

Transferring 4K video files from a Sony action cam (FDR-X3000) to an iPhone

When using Sony action cameras that are capable of recording in the XAVC-S format (e.g. FDR-X3000), especially in 4K, it is not immediately obvious how to transfer these files to an iPhone.

When using the Sony PlayMemories app, the option to transfer the files to the iPhone is grayed out (the middle icon in the below toolbar):

The solution is to use a different app, namely the Sony “Action Cam” app. In this app, click “Import”:

Then you will find that if you select a file, it will now even import 4K:


Note: in this approach the downloaded file will be downscaled, and you won’t have the full 4K video on your iPhone. However, this downscaled video can be useful for sharing on social media.

If you want full quality 4K transferred to the iPhone, you have this remaining option (besides using a PC, of course), which is to use the Leef dongle that has a micro SD card reader for iPhone. (If you have a recent iPhone that supports 4K.)

Note that the Leef will also work for A7 cameras, but it only has a micro SD card slot, so you’ll need an adapter.

B-24 ‘Liberator’ bomber dive site, Togean Islands

One of the fascinating dive spots near the Togean Islands, Sulawesi, is the wreck of a B-24 ‘Liberator‘ bomber.
Photo’s of the full crash report can be found at Kadidiri Paradise. I’ve included them here for those that are interested in history:

The wreck lies roughly at a depth of 15 to 25 meters.
It had rained heavily the night before we dove and the visibility was poor. Nonetheless, it was a very interesting dive. The site is home to a lot of lion fishes, so be careful.

Org-mode and wide TaskJuggler HTML export

By default, when using the TaskJuggler exporting function in Org-mode, it will produce a web page that is too narrow by today’s standards:

(Notice the scrollbar underneath the GANTT plot.)

The solution is to put a tweak in your emacs init file that adds columns ... { width 1000 } to the TaskJuggler output.

(setq org-taskjuggler-default-reports
'("textreport report \"Plan\" {
formats html
header '== %title =='
center -8<-
[#Plan Plan] | [#Resource_Allocation Resource Allocation]
=== Plan ===
<[report id=\"plan\"]>
=== Resource Allocation ===
<[report id=\"resourceGraph\"]>
# A traditional Gantt chart with a project overview.
taskreport plan \"\" {
headline \"Project Plan\"
columns bsi, name, start, end, effort, effortdone, effortleft, chart { width 1000 }
loadunit shortauto
hideresource 1
# A graph showing resource allocation. It identifies whether each
# resource is under- or over-allocated for.
resourcereport resourceGraph \"\" {
headline \"Resource Allocation Graph\"
columns no, name, effort, weekly { width 1000 }
loadunit shortauto
hidetask ~(isleaf() & isleaf_())
sorttasks plan.start.up

Also, some other tweaks that I found useful:

(setq org-taskjuggler-default-project-duration 999)
(setq org-taskjuggler-valid-task-attributes
'(account start note duration endbuffer endcredit end
flags journalentry length limits maxend maxstart minend
minstart period reference responsible scheduling
startbuffer startcredit statusnote chargeset charge booking))

The first sets the default project duration that I couldn’t seem to set in the org file itself. The second makes it possible to add booking clauses to tasks (so you can define those inside your org files).

Finally, I also found it useful to tweak the columns in the GANTT chart. I added the effortdone and effortleft fields, which are visible in the above screenshot.