Draft of my guide (will do it again with bigger disk and adjust it). No other linux machine needed.
this guide is based on
LinuxUSBPenBoot
PartitioningLinux
LinuxUSBPenBoot
You will need parted with Apple Recovery attribute support (at least to check partitions):
http://code.google.com/p/atv-bootloader/wiki/InstallParted
http://code.google.com/p/atv-bootloader/issues/detail?id=20
Download USB img (live distro) and Recovery.img here (Thank you Sam)
http://stmteam.com/atv-img/ubuntu/hardy/
Write USB image to USB pen with UsbIt
Boot your Apple TV with this usb
ssh there with putty, login and password: atv
#admin access
sudo -s
#(adjust - disk size -1.1GB)
EndSector="38.9GB"
#prep internal disk for transfer
#zero initial sectors
sudo dd if=/dev/zero of=/dev/sda bs=4096 count=1M
# sync the system disk partition tables
sudo partprobe /dev/sda
# copy usb(sdb) to internal hardisk(sda)
# check if it's really hda!!! - disk - /dev/hda
dd if=/dev/sdb of=/dev/sda
#remove 3rd partition on internal hdd (as command or run parted and use print to be sure and rm 3)
parted /dev/hda3/ rm 3
#resync partition table
partprobe /dev/sda
# create partition
sudo parted -s /dev/sda mkpart primary ext3 1118248s $EndSector
sudo partprobe /dev/sda
#Transferring image - 3rd partition only!
gunzip -c Root.img.gz | sudo dd of=/dev/sda3
#resize
sudo e2fsck -f /dev/sda3
sudo resize2fs /dev/sda3
# mount recovery partition
mkdir mnt
mount -t hfsplus -w /dev/sda1 mnt
#edit plist - change sdb3 to sda3 there -
nano mnt/com.apple.Boot.plist
#edit fstab - change sdbX to sdaX
nano /etc/fstab
# it's possible to check 1st part
apt-get install hfsprogs
fsck.hfsplus /dev/sda1
#reboot, remove your USB flash before
reboot
If it hangs you didn’t edit com.apple.Boot.plist correctly
you can wget it with fstab too:
wget http://crystalhd-for-atv.googlecode.com/svn/trunk/image/hardy/com.apple.Boot.plist
wget http://crystalhd-for-atv.googlecode.com/svn/trunk/image/hardy/fstab