Tag Archive for 'imaging'

Ubuntu 8.0.4 is EOL today

Ubuntu 8.0.4 Desktop packages are no longer supported by Canonical. The LTS release has finished its three year support cycle.

What does this mean for Crystalbuntu users?

At the moment, nothing. The latest version of XBMC 10.1 Dharma, as well as the new nightly builds can run on Hardy just fine (although XBMC devs no longer officially support this platform). 8.0.4 LTS is still the best compromise between freshness, stability, performance and driver support.

What about the lack of security updates?

Ubuntu 8.0.4 is still a secure system, behind a router which is using NAT. This is because ports are not by default exposed to the world, unless a DMZ is set. Therefore, your system will be behind a firewall, and so security updates are not the necessity they would be if you were running a web server in a production environment. Those concerned about security: have you changed the default username and password and generated a new SSH key? No? Then your system would never have been secure.

What next when 8.0.4 won’t run XBMC anymore? Why is there no 11.04 image?

8.0.4 will probably run XBMC for a while. There is no later version of Ubuntu used because the driver support in these later systems would cause a loss of functionality. The NVIDIA 7300 GO will not utilise HDMI audio out on driver versions that are compatible with later versions of Ubuntu, so this results in a loss of passthrough and downmixing over HDMI, requiring RCA or optical. Worst of all, newer versions of Ubuntu have a larger footprint, and will use more resources doing the same thing, so while XBMC can run fine on 8.0.4 using typically 90MB of RAM (that’s ~ 35%) or less at load, it will be the primary image. The difference between Ubuntu 8.0.4 and Arch 10.5 in performance is negligible.

So if HDMI sound doesn’t work, performance is worse on later versions of Ubuntu, will we ever be running it on our aTVs?

Probably. The Nouveau driver is an open-source driver for NVIDIA cards and is maintained well. It will become more mature over time (it is currently rather buggy right now), but that should improve. This would allow HDMI sound output. Performance can probably be increased by minimising the image’s packages.

I don’t care about HDMI sound, give me a more up to date image?

Sorry but at this stage in time — there’s no need to do so. HDMI sound is valuable to many users, and this image is intended for the masses. Therefore, I would recommend you setup Ubuntu on aTV yourself if you are so inclined to go for an up to date distribution.

Most likely the next image will be based on the 12.04 LTS release.


Fixed: blinking question mark issue

Hello,

First off: thanks for being patient. I haven’t had a lot of time in the last week, but once I got my head round the problem the solution was simple. The bug however, is a bit of a weird one. The internal hard drive installer seemed to be working for most people, but for a minority, they got a blinking question mark on reboot. Looking at people’s output of parted -s /dev/sda unit s print, I could see that there was no visible filesystem for the first partition (the Recovery partition). This is why the question mark arose — as there was no EFI bootloader, and it is why the mounting portion of the script failed, as there was no present filesystem.

I managed to replicate this problem somehow. The problem was not permissions, but rather the fact that the transfer to the first partition is corrupted. Running it through SSH is fine as the system has already initialised. The big giveaway was the time dd was taking. Swap and Recovery gave throughputs of around 7MB/s, but Recovery was completing at 24MB/s? Yeah right. So I implemented a small MD5sum check. For those that have a successful install, the script continues, else if the checksums do not match, the dd command for Recovery is run again. This fixes the problem every time. It seems the IDE controller is not initalised properly until the first bit of data is dd’d across (excluding /dev/zero), although I could just as easily image sda1 with /dev/random or /dev/zero and then image the Recovery filesystem, but there would be no point for those that have no initial problem.

Another update to the installer is that the Recovery partition is no longer fetched for Ubuntu. Seeing as the installer is running the exact same kernel (mach_kernel), the drive can be duplicated off of /dev/sdb1 and then the com.apple.Boot.plist be modified — which is done anyway. This only saves around 10MB of traffic but helps for people with slow internet connections and cuts out unnecessary waiting time

So for the average user, all you need to know is that the problem is fixed. Simply run the installer again and it should work fine. Once again, sorry about the delays.

Sam

How To: Linux over Windows Deployment Services (Diskless Booting)

A few days ago, I tweeted that I swapped out the WDS pxe boot program for pxelinux, and in doing so, I managed to create a system that would let me deploy Linux distributions alongside my Windows images without needing a separate PXE server nor losing the capabilities of WDS. I have found imaging machines over the network much more convinient than installation through flash drive / CD / DVD etc – being able to install my Linux distros in the same manner would be a blessing.

The first thing you need is a working, and by that I mean a configured WDS server that has the correct DHCP options applied. If other machines can load a standard boot.wim then this step has been satisfied.

The next step is to download the syslinux package from the Linux Kernel Archives here. Extract the following files:

  • core\pxelinux.0
  • com32\menu\vesamenu.c32
  • com32\modules\chain.c32

Put these three files in your architecture directory (x86 or x86 — both if deploying to both systems) under your WDS root folder, which will most likely be named RemoteInstall.

Next, create a directory in each architecture called pxelinux.cfg, one called linux (to store distros) and create a file called default.cfg

cd \; cd RemoteInstall\x64; mkdir pxelinux.cfg; mkdir linux; cd pxelinux.cfg; echo OFF > default

Leave it blank for now.

Now we change the boot program to pxelinux.0 which is in the architecture directory. This can be only be done by command line in WS2K8R2. Here is an example:

(x86)

  • wdsutil /set-server /bootprogram:boot\x86\pxelinux.0 /architecture:x86
  • wdsutil /set-server /N12bootprogram:boot\x86\pxelinux.0 /architecture:x86

(x64)

  • wdsutil /set-server /bootprogram:boot\x64\pxelinux.0 /architecture:x64
  • wdsutil /set-server /N12bootprogram:boot\x64\pxelinux.0 /architecture:x64

Now we have the WDS core configured. What we have done is replaced the default PXE boot program with a Linux one. This gives us more flexibility and if we want to use the WDS boot loader to load a boot.wim file, we can do so by passing it in one of the arguments.

The next step is to download some Linux “netboot” images which we can have as installers. I did this for Ubuntu (grab the files here). All that’s needed is the Linux kernel and ramdisk and then the installer can fetch all the necessary bits. I also chucked in memtest86+ — simply one file which means that deployment is also as simple, and gparted which needs to download a file system over TFTP.

Here was my default file:

DEFAULT      vesamenu.c32
PROMPT       0
NOESCAPE     0
ALLOWOPTIONS 0
# Timeout in units of 1/10 s
TIMEOUT 100
MENU MARGIN 10
MENU ROWS 16
MENU TABMSGROW 21
MENU TIMEOUTROW 26
MENU COLOR BORDER 30;44        #20ffffff #00000000 none
MENU COLOR SCROLLBAR 30;44        #20ffffff #00000000 none
MENU COLOR TITLE 0         #ffffffff #00000000 none
MENU COLOR SEL   30;47        #40000000 #20ffffff
MENU TITLE Netboot Menu
LABEL wds
MENU LABEL WDS
KERNEL pxeboot.n12
label ubuntu-1004
menu label Ubuntu 10.04 Installer
kernel /linux/ubuntu1004/linux
append priority=low vga=normal initrd=/linux/ubuntu1004/initrd.gz –

label gparted-live
MENU LABEL Gnome Partition Editor
kernel \linux\gparted\vmlinuz
append initrd=\linux\gparted\initrd.img boot=live union=aufs noswap noprompt vga=788 fetch=tftp://192.168.1.2/linux/gparted/filesystem.squashfs
label memtest
menu label Memtest86+
kernel \linux\memtest\memtest
#—
LABEL Abort
MENU LABEL AbortPXE
Kernel    abortpxe.com

What I have done is store each distro’s kernel and ramdisk in a separate directory. This makes maintenance easier. Kernel arguments are passed with the append parameter — look up the kernel arguments of your chosen distro for more. Note that for gparted I added: fetch=tftp://192.168.1.2/linux/gparted/filesystem.squashfs. This allows the distro to acquire the actual file system, and thus launch utilities such as parted. GParted allows fetching of the squashfs (read only) file over TFTP. This will be accessible at the WDS server in the linux directory we created earlier.

This is good, as we have now added the ability to deploy Linux distros alongside Windows distros and still retain WDS functionality. I wanted to take the idea further though, and boot a LiveCD (which can be easily customised) in the pre-execution environment.

This is very simple to do. I did this with Maverick Meerkat (Ubuntu 10.10). I first appended my current configuration for pxelinux (default):

LABEL maverick-live
kernel linux/ubuntu-1010/vmlinuz
append boot=casper netboot=nfs nfsroot=192.168.1.2:/path/to/file/system initrd=
linux/ubuntu-1010/initrd.gz

Unfortunately, unlike GParted, the filesystem must be served over NFS, not TFTP. First, we need to install an NFS server. Configuration is beyond the scope of this article: see http://technet.microsoft.com/en-us/library/cc753302%28WS.10%29.aspx for more. After this, we can now serve Linux installations and live distributions to any clients that connnect.

I also wanted to automate the installation of Windows versions that are not compatible with WDS (i.e. < XP). This was easy as putting in a rc.local script which used dd to transfer image data and then running resize2fs -f /dev/sda. It would be nice if I could customise the kernel in such a way that I could pass the Win distro to be installed via kernel flags with the append option.