I have a B01 PogoPlug. I pulled a backup script off of these forums somewhere and created a cronjob to run this script weekly. Since no backup solution can be trusted until it's tested and I want to move my installation away from a 4 GB flash drive I decided to put my backup to the test.
This is my backup script:
$this->bbcode_second_pass_code('', '#! /bin/bash
# script to create a tar backup file
# of the pogo plug device
# directory to place backups
BACKUPDIR=/media/WD_HDD/backups
# file name YYYY-MM-DDHH:MM:SS.tgz
BACKUPNAME=`date +%F_%T`.tgz
# remove dashes and colons from file name
BACKUPNAME=${BACKUPNAME//[-|:]/}
# root directory for the backup
SOURCE=/
# number of sets to keep
NUMSETS=5
# perform the backup
tar -cvpzf $BACKUPDIR/$BACKUPNAME \
--exclude=/proc --exclude=/mnt --exclude=/sys \
--exclude=/dev --exclude=/lost+found \
--exclude=/media $SOURCE
# delete older files greater than $NUMSET
cd $BACKUPDIR
LINS=$((NUMSETS + 1))
if [[ $(ls $BACKUPDIR | wc -l) > $NUMSETS ]]
then
stat -c "%Y %n" * | sort -rn | tail -n +"$LINS" | \
cut -d ' ' -f 1 --complement | xargs -d '\n' rm
fi
')
I untarred a backup I had just created to the root of a freshly formatted external hard drive.
$this->bbcode_second_pass_code('', 'drwxr-xr-x 2 root root 4096 Nov 30 11:42 bin
drwxr-xr-x 2 root root 4096 Dec 12 22:58 boot
drwxrwxrwx 5 root users 4096 Nov 8 13:20 builds
drwxr-xr-x 4 root root 4096 Dec 31 1969 dev
drwxr-xr-x 59 root root 4096 Dec 15 23:54 etc
drwxr-xr-x 4 root root 4096 Nov 5 09:40 home
-rw-r--r-- 1 root root 4139 Nov 20 2011 ledcontrol.tgz
lrwxrwxrwx 1 root root 7 Nov 6 09:23 lib -> usr/lib
drwx------ 2 root root 16384 Dec 18 01:18 lost+found
drwxr-xr-x 3 root root 4096 Oct 4 20:41 opt
drwxr-x--- 4 root root 4096 Dec 11 21:38 root
drwxr-xr-x 23 root root 4096 Dec 15 23:52 run
drwxr-xr-x 2 root root 4096 Dec 9 14:37 sbin
drwxr-xr-x 4 root root 4096 Dec 8 18:30 srv
drwxrwxrwt 9 root root 4096 Dec 17 04:00 tmp
drwxr-xr-x 9 root root 4096 Dec 8 18:30 usr
drwxr-xr-x 14 root root 4096 Dec 8 18:30 var')
I shut down the PogoPlug, removed all external media except this hard drive and attempted to boot. I get a steady green light but I can't ping the static IP and my router hasn't issued a new IP.
Here's the relevant serial output:
$this->bbcode_second_pass_code('', '[ 6.970000] scsi2 : SCSI emulation for USB Mass Storage devices
[ 11.970000] scsi 2:0:0:0: Direct-Access Seagate FreeAgent Go 102D PQ
: 0 ANSI: 4
[ 13.790000] sd 2:0:0:0: [sda] 488397168 512-byte logical blocks: (250 GB/232
GiB)
[ 13.800000] sd 2:0:0:0: [sda] Write Protect is off
[ 13.800000] sd 2:0:0:0: [sda] Assuming drive cache: write through
[ 13.810000] sd 2:0:0:0: [sda] Assuming drive cache: write through
[ 13.820000] sda: sda1
[ 13.860000] sd 2:0:0:0: [sda] Assuming drive cache: write through
[ 13.870000] sd 2:0:0:0: [sda] Attached SCSI disk
[ 13.970000] kjournald starting. Commit interval 5 seconds
[ 13.970000] EXT3 FS on sda1, internal journal
[ 13.970000] EXT3-fs: mounted filesystem with writeback data mode.
[ 13.970000] VFS: Mounted root (ext3 filesystem) on device 8:1.
[ 14.030000] devtmpfs: mounted
[ 14.030000] Freeing init memory: 144K
INIT: version 2.88 booting
HOSTNAME= is deprecated. See rc.conf(5) and hostname(5) for details.
> Arch Linux ARM
> http://archlinuxarm.org/
:: Mounting root read-only [BUSY] mount: /: mount failed: No such file or directory
[FAIL]
:: Setting hostname: PogoPlug [BUSY] /etc/rc.sysinit: line 48: /proc/sys/kernel/hostname: No such file or directory
[FAIL]
HARDWARECLOCK= is deprecated. See rc.conf(5) and hwclock(8) for details.
:: Adjusting system time and setting kernel time zone [BUSY] TIMEZONE= is deprecated. See rc.conf(5) for details.
[DONE]
:: Starting udev daemon [BUSY]
[ 16.550000] <30>systemd-udevd[395]: starting version 196
[DONE]
:: Triggering udev uevents [DONE]
:: Loading user-specified modules [BUSY] MODULES= is deprecated. See rc.conf(5) and modules-load.d(5) for details.
Failed to read /proc/cmdline, ignoring: No such file or directory
[ 17.070000] Probing for Synopsis GMAC, unit 0
[ 17.080000] eth0: Tuning GMAC 0 RGMII timings
[ 17.080000] eth0: PHY is Realtek RTL8211D, type 0x001cc914
[ 17.090000] eth0: GMAC ver = 53, vendor ver = 18 at 0xed400000, IRQ 40
[ 17.100000] eth0: Found PHY at address 3, type 0x001cc914 -> 10/100/1000
[ 17.100000] eth0: Ethernet addr: 00:30:e0:00:00:00
[ 17.110000] probe() eth0: Leon x2 clock
[DONE]
:: Waiting for udev uevents to be processed [DONE]
:: Configuring virtual consoles [BUSY] Failed to enable UTF-8: No such file or directory
[DONE]
:: Checking filesystems [BUSY] /etc/rc.sysinit: line 120: /dev/stdout: No such file or directory
[DONE]
:: Remounting root and API filesystems [BUSY]
mount: /: mount failed: No such file or directory
[FAIL]
:: Mounting local filesystems [DONE]
:: Activating swap [DONE]
:: Configuring time zone [DONE]
:: Initializing random seed [DONE]
:: Removing leftover files [DONE]
:: Saving dmesg log [BUSY]
install: cannot stat ‘/dev/fd/63’: No such file or directory
NIT: Entering runlevel: 3
mount: mount point /proc/sys/fs/binfmt_misc does not exist
:: Setting MAC address [BUSY]
[ 19.080000] Turning off blinking LED.
ORANGE
AMBER
[ 19.570000] NET: Registered protocol family 3
[ 19.660000] NET: Registered protocol family 6
[ 19.760000] NET: Registered protocol family 11
[ 19.930000] NET: Registered protocol family 4
[ 20.000000] NET: Registered protocol family 5
GREEN
[ 20.260000] eth0: PHY is Realtek RTL8211D, type 0x001cc914
[ 20.270000] CoPro offload is active on eth0
[ 20.270000] Alloc'ing ARM descs 8192 bytes
[ 20.280000] Alloc'ing CoPro parameters 36 bytes
[ 20.280000] gmac gmac.0: firmware: requesting gmac_copro_firmware
[ 80.290000] open() eth0: Failed to load CoPro firmware
')
In reading over this wiki entry regarding using rsync to make a backup, I'm suspecting the boot failed because it couldn't mount the various folders required (since they weren't there). I just read that article in preparation for this post. As I've already connected everything to the PogoPlug, I'll make the folders and try again tomorrow.
In theory all I'll have to do is create the folders I'm missing and it should boot up right? Could those missing folders be why the kernel failed to mount / ?