Forum
Generic Forum
Installation
AppleTV
How to recover / recreate a ATV HDD from scratch, and install OpenElec [Working instructions]|
Welcome,
Guest
|
|
How to create a new working Apple TV Storage device (using Linux. OS X would be similar. Windows - get a real OS hahaha) for replacing an internal drive.
You'll need: 1) atv_restore.tar.gz - chewitt.openelec.tv/atv_restore.tar.gz 2) atv_recovery.tar.gz - chewitt.openelec.tv/atv_recovery.tar.gz 3) OpenElec files for ATV - releases.openelec.tv/OpenELEC-ATV.i386-1.95.4.tar.bz2 4) A new storage device of some kind. 4G is enough, so CF or DOM or similar is suitable. 5) Ability to follow instructions, and use common sense. If you lack this, find someone who can assist, and who has these attributes. No, I'm not being facetious either, the operations below are destructive, so someone with a cluestick is preferred. Ready? Make a temp work folder. eg mkdir /tmp/atv cd /tmp/atv Unzip the OpenElec files, and put the SYSTEM, KERNEL, and place into the work folder. Copy the atv_restore.tar.gz to the work folder. Copy the atv_recovery.tar.gz to the work folder. Mount your external drive. All data will be erased on it. *Take a note of the drive letter* *Make sure that you have the correct drive letter* **Double check** Operations below are destructive, so check once more, all data will be erased on the destination drive. In my computer, my new drive has popped up as /dev/sdf Instructions below assume your new drive is /dev/sdf If you are using a different drive letter, amend instructions to your drive letter. Assuming drive is /dev/sdf in the following instructions ****Replace /dev/sdf with your drive if your drive is not using /dev/sdf***** #Erase existing partitions/drive if not currently empty. dd if=/dev/zero of=/dev/sdf bs=4 count=1M #Quick hacky partition / boot sector eradication, bwahahahahhem. #Create GPT parted -s /dev/sdf mklabel gpt #make sure current OS knows *current* drive partition setup (i.e. no partitions, 1 gpt) partprobe /dev/sdf #Create EFI partition, and set bootable (35M size) parted -s /dev/sdf mkpart primary fat32 40s 69671s parted -s /dev/sdf set 1 boot on #Create a "Recovery" partition (419M size) parted -s /dev/sdf mkpart primary HFS 69672s 888871s parted -s /dev/sdf set 2 atvrecv #Create OS Boot partition (944MB) parted -s /dev/sdf mkpart primary HFS 888872s 2732071s #Create Media partition (rest of drive-262145sectors) DISKSIZE=$(parted -s /dev/sdf unit s print | grep Disk | awk '{print $3}' | sed s/s//) let SECTORS="${DISKSIZE}"-262145 parted -s /dev/sdf mkpart primary ext4 2732072s ${SECTORS}s #Create SWAP partition let SECTORS="${SECTORS}"+1 let DISKSIZE="${DISKSIZE}"-80 parted -s /dev/sdf mkpart primary linux-swap ${SECTORS}s ${DISKSIZE}s #Update OS with new drive setup partprobe /dev/sdf # #Format Partitions ---- mkfs.msdos -F 32 -n EFI /dev/sdf1 #boot mkfs.hfsplus -v Recovery /dev/sdf2 #recovery mkfs.hfsplus -J -v OSBoot /dev/sdf3 #Linux OS / ATV OS / OpenElec etc mkfs.ext4 -b 4096 -L Linux /dev/sdf4 #Storage mkswap /dev/sdf5 sync #--- #My new _4g_ CF "HDD" looks like this: # #parted /dev/sdf print #Model: TOSHIBA MK4309MAT (scsi) #Disk /dev/sdf: 4327MB #Sector size (logical/physical): 512B/512B #Partition Table: gpt # #Number Start End Size File system Name Flags # 1 20.5kB 35.7MB 35.7MB primary boot # 2 35.7MB 455MB 419MB hfs+ primary atvrecv # 3 455MB 1399MB 944MB hfs+ primary # 4 1399MB 4193MB 2794MB ext4 primary # 5 4193MB 4327MB 134MB linux-swap(v1) primary # #--- #Setup Recovery partition (sdf2) to default factory restore files. mkdir -p /mnt/recovery fsck.hfsplus -f /dev/sdf2 mount -t hfsplus -o rw,force /dev/sdf2 /mnt/recovery tar -xzvf atv_restore.tar.gz -C /mnt/recovery chown -R root:root /mnt/recovery #Copy OpenElec files to OSBoot Linux partition (sdf3) SYSTEM, LINUX mkdir -p /mnt/linux fsck.hfsplus -f /dev/sdf3 mount -t hfsplus -o rw,force /dev/sdf3 /mnt/linux cp KERNEL /mnt/linux cp SYSTEM /mnt/linux umount /dev/sdf3 #Redo recovery partition (sdf2) to patchstick defaults now. #Copy over recovery.tar.gz files #update keyword -> bootable #rename boot script to patchstick.sh #make executable and own all files as root tar -xzvf atv_recovery.tar.gz -C /mnt/recovery echo bootable > /mnt/recovery/keyword rm /mnt/recovery/patchstick.sh mv /mnt/recovery/patchstick.boot /mnt/recovery/patchstick.sh #Make sure to edit fsck.ext4 /dev/sdf3 to fsck.hfsplus /dev/sdf3 in default patchstick.sh as this may break our HFSplus partition if we fsck.ext4 it... chmod 7777 /mnt/recovery/patchstick.sh chown -R root.root /mnt/recovery umount /dev/sdf2 #Setup media partition (/dev/sdf4) mkdir -p /mnt/media mount /dev/sdf4 /mnt/media mkdir -p /mnt/media/.config touch /mnt/media/.config/ssh_enable #I like SSH access as a default. mkdir -p /mnt/media/.cache mkdir -p /mnt/media/.xbmc/userdata umount /dev/sdf4 #Prepare for takeoff, er eject drive. sync eject /dev/sdf This drive can now be mounted in the ATV1, and will boot into OpenElec (after a 1st reboot fsck) ============= #Amended Boot script for reference ( patchstick.sh ) fsck.hfsplus /dev/sdf3 &> /dev/null fsck.ext4 /dev/sdf4 &> /dev/null mkdir /boot mount /dev/sdf3 /boot kexec -l /boot/KERNEL --command-line="boot=/dev/sdf3 disk=/dev/sdf4 quiet nosplash" kexec -e |
|
The administrator has disabled public write access.
|




