resize


Qubes OS 3.2: Resize fedora-23 TemplateVM Root Image 1

Recently, we needed to increase the size of the root image for the fedora-23 TemplateVM.
We had to do this as we wanted to install in /opt a few IDEs, including android-studio which takes a lot of space when accompanied by the Android SDK.

Following the excellent guide at https://www.qubes-os.org/doc/resize-root-disk-image/, we did the following:

  1. Made sure that the fedora-23 TemplateVM and all VMs based on that template were shut down.
    This included stopping the sys-firewall and sys-net VMs as well (in this order).
  2. Then, in the VM Settings window at the Basic tab for the fedora-23 TemplateVM, we disabled the networking by selecting none on the NetVM: drop-down list and pressed OK to apply the settings changes.
  3. Following, in dom0 Terminal Emulator we run the following command:
    truncate -s 40G /var/lib/qubes/vm-templates/fedora-23/root.img;
  4. Afterwards we started the fedora-23 TemplateVM and run the following in the terminal:
    sudo resize2fs /dev/mapper/dmroot;
    Please note that if your output is Nothing to do! then most likely you forgot a VM that is based on the fedora-23 TemplateVM running. Normally your screen should print something along the lines of Resizing the filesystem...
  5. Next, we shut down the fedora-23 TemplateVM, and went to the VM Settings window to enable networking by selecting whatever we had there before (for us it was default (sys-firewall)).
  6. Finally, we could start using our VMs, their root.img were of the new extended size.

Bash/FFMPEG: Batch resize .mp4 videos to fixed resolution

We needed to shrink a bunch of mp4 videos so that they would have the same size as the screen of an android device.
We did that both to save space on the internal memory of the device and to make the device perform as efficient as possible as it would not have to shrink the video on the fly.

The command we used was the following:

find . -type f -name "*.mp4" -exec bash -c 'FILE="$1"; ffmpeg -i "${FILE}" -s 1280x720 -acodec copy -y "${FILE%.mp4}.shrink.mp4";' _ '{}' \;

What this command does is the following:

  • Find all files in current folder (and sub-folders) that have the extension .mp4
  • For each file, create a new bash instance in which it will call ffmpeg taking as first parameter the filename that matched
  • -i "${FILE}"ffmpeg will take as input the filename we matched
  • -s 1280x720 – Then change the video size to 1280x720
  • -acodec copy – It will keep the audio as is
  • -y "${FILE%.mp4}.shrink.mp4 – Finally, create a new file (or overwrite existing) that has the extension .shrink.mp4 in the same folder