Migrating Existing MythTV 0.24 on HDD to MythTV 0.25 on SSD
Summary
This tutorial outlines the process of migrating a Mythbuntu
installation from one hard drive to another, while at the same time
upgrading MythTV. In the steps detailed below, the Mythbuntu
installation is migrated from a Hard Disk Drive (HDD) to a Solid State
Drive (SSD). Please note that these instructions can also be used to
migrate from one hard drive to another while keeping the same MythTV
version.
This tutorial is the second in a mini series that started
with Why Consider RAID for
PVR Recordings and Solid State Drive for Mythbuntu Operating
System.
The original series of articles that outline the path of creating a
custom-built PVR can be found at the following links:
- Cutting the cord on cable TV
- Selecting hardware for a MythTV PVR
- Installing Mythbuntu 12.04.2 with MythTV 0.25
- Configuring MythTV automatic wakeup and shutdown
Contents
- Migrate MythTV to New Drive
- Export existing MythTV database to a file
- Install new drive (HDD or SSD) in PVR
- Install Mythbuntu on new drive
- Optimize OS installation for SSD [Optional]
- Import exported file into new MythTV database
- Re-configure MythTV automatic wakeup and shutdown [Optional]
- Test MythTV Operation
- Back Out Steps [Optional]
- Migration Complete
- References
- Future Articles
Migrate MythTV to New Drive
After having experienced a couple of hard drive failures, my spouse
and I wanted to increase the reliability and robustness of our PVR.
To accomplish this we decided to separate the Mythbuntu Operating
System (OS) from the TV show recordings. We did this by first
migrating the OS to a new Solid State Drive (SSD) and secondly by
building a RAID and migrating the recordings to the RAID. Since our
original installation used Mythbuntu 11.04 (with MythTV 0.24) we
decided to upgrade to Mythbuntu 12.04 (with MythTV 0.25) at the same
time.
This tutorial covers the aforementioned first step of migrating the
Mythbuntu OS while keeping the existing MythTV settings and using the
recordings as they exist on the original Mythbuntu installation. Note
that an added benefit of migrating Mythbuntu to a new drive is that
because we do not touch the original Mythbuntu installation, we keep
open the option of immediately switching back should the upgrade not
go well, or otherwise not meet with our expectations.
TIP: Perform Steps When Not Recording Shows |
Export existing MythTV database to a file
When creating the export file, be sure to save the file (or a copy) of the resulting backup someplace that will survive re-installs and/or disk failures. In this example we use the /data/mythtv/db_backups directory. Note that the default location in an unmodified Mythbuntu install is /var/lib/mythtv/db_backups.
- Open a terminal window and create an export of the
existing MythTV database.
/usr/share/mythtv/mythconverg_backup.pl --verbose \
--directory=/data/mythtv/db_backups
Note that this directory likely contains other automatic MythTV database export files. Ours will be the most recent file.
Install new drive (HDD or SSD) in PVR
In my computer I plugged the drives into the SATA ports in the following order:
- /dev/sda - new SSD for Mythbuntu 12.04 OS.
- /dev/sdb - original HDD containing Mythbuntu (11.04) and
recordings.
- /dev/sr0 - original DVD R/W optical drive.
Install Mythbuntu on new drive
- Alter BIOS to place the new drive (SSD) higher in boot order than other HDDs.
- Install Mythbuntu 12.04 on drive (SSD).
TIP: Only Two Partitions Needed (OS and Swap)
Note that we only need partitions for Mythbuntu OS and swap space on the new drive. The recordings stored in /data will be left on the original drive.
Follow the Installing Mythbuntu 12.04.2 with MythTV 0.25 instructions, but stop at step T. Create Scheduled Direct Acccount [Optional]. We stop at step "T" because we will be importing the MythTV database settings.
- Ensure /etc/fstab set to mount /data from original HDD.
- Ensure correct new ownership of mythtv.mythtv for
files and folders in /data.
In a terminal window, enter the following command:
sudo chown -R mythtv.mythtv /data
It is important to ensure the correct ownership because different installs of Mythbuntu might use a different number for the mythtv userid or mythtv group.
Optimize OS installation for SSD [Optional]
Solid State Drives (SSDs) are completely different than standard
spinning hard disk drives. As such I spent some time researching SSDs
and discovered some optimization tips. The general recommended
practice is to lessen write activity where possible, and to reserve
~10% unallocated space when partitioning (some newer SSDs supposedly
do this already -- maybe that explains the difference in SSD sizes such
as 60 GB versus 64 GB).
Following are the tips I implemented on my Mythbuntu PVR.
- Add "noatime" to SSD file system mounts to inhibit
last access time updates.
Edit /etc/fstab
sudo leafpad /etc/fstab
and add "noatime" parameter to "/" mount. The resulting line should look something like the following:
---------- begin /etc/fstab lines ----------
# / was on /dev/sda1 during installation
---------- end /etc/fstab lines ----------
UUID=d819744e-5a07-4039-95b8-9d322954b065 / ext4 noatime,errors=remount-ro 0 1
NOTE: Some Recommend Adding "discard" or Scheduling TRIM
From my research some people advise adding "discard" to /etc/fstab to help with wear levelling. However I have read that this can increase the time to perform a delete.
Some other people advise scheduling regular TRIM operations to perform this same wear levelling.
Since I was unsure of all the implications, I opted to not implement either method and instead take a wait-and-see approach. So far my PVR has been running without these "discard/TRIM" settings since May 2013 and I have not experienced any noticeable degradation in SSD performance. - Limit swap space wear and tear by reducing the
inclination to swap.
Edit /etc/sysctl.conf
sudo /etc/sysctl.conf
and add the following 5 lines to end of file:
---------- begin 5 /etc/sysctl.conf lines ----------
#
---------- end 5 /etc/sysctl.conf lines ----------
# Sharply reduce swap inclination
vm.swappiness=1
# Don't shrink the inode cache aggressively
vm.vfs_cache_pressure=50
- Limit write actions in Firefox.
Start Applications -> Internet -> Firefox Web Browser.
Select Edit -> Preferences -> Advanced
On Network tab
Click on Clear Now
Override automatic cache management:
Limit cache to 0 MB of space
Click on Close
Exit Firefox
Import exported file into new MythTV database
- Stop the MythTV backend.
In a terminal window enter the following command:
sudo stop mythtv-backend
- Locate the recently created database export
file.
ls -lt /data/mythtv/db_backups | head
The most recent file is listed at the top with a name in the form:
mythconverg-1264-20130408134231.sql.gz
Note that the date and timestamp is contained in the filename. - Import the previously created export file into the
new MythTV database.
/usr/share/mythtv/mythconverg_restore.pl \
--drop-database --create-database \
--directory=/data/mythtv/db_backups \
--filename=mythconverg-1264-20130408134231.sql.gz
Remember to replace the filename mythconverg... with the one you created previously. - Start the MythTV backend again.
sudo start mythtv-backend
If prompted "Warning: MythTV wants to upgrade your database", then use the arrow keys to select upgrade, and then press Enter to accept.
Re-configure MythTV automatic wakeup and shutdown [Optional]
If you previously configured MythTV to automatically shutdown when idle and later wakeup to record shows, then ensure that all necessary scripts and setting exist by following the steps for Configuring MythTV Automatic Wakeup and Shutdown.
Test MythTV Operation
At this point I highly recommending rebooting your Mythbuntu PVR and confirming proper MythTV operation, such as viewing TV shows. In this way you can help ensure that you do not miss any upcoming recordings.
Back Out Steps [Optional]
If for any reason you wish to return to your previous setup, then now
is the time because the MythTV database should still match the
recordings stored in the /data directory. The steps to return to your
previous configuration are as follows:
- Alter BIOS to place the original drive with Mythbuntu higher in boot order than other HDDs.
- Reboot.
- Ensure correct ownership of mythtv.mythtv for
files and folders in /data.
In a terminal window, enter the following command:
sudo chown -R mythtv.mythtv /data
Migration Complete
With the completion of the above steps, you should now have your Mythbuntu setup migrated to a new drive. For myself I performed these steps to migrate to a newer Mythbuntu OS installation on a faster Solid State Drive (SSD). This was the first step in my goal of increasing the reliability and robustness of my Mythbuntu PVR. In the near future I plan to cover the next step to setup a RAID level 1 mirror and migrate my existing PVR recordings to the RAID.
References
While migrating my Mythbuntu installation to a new SSD I found the following references useful:
- Upgrading between Mythbuntu Releases
- MythTV Backend Migration
- Migrate MythTV Recordings to a New Server
- Solid State Drive (SSD): optimize it for Ubuntu, Linux Mint and Debian
- Setting up and using SSD drives in Fedora Linux
- Solid State Drives - ArchWiki
Future Articles
In future articles, I plan to cover the following steps of our path: