Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
|
sanboot:ubuntu_aoe [2010/09/17 04:01] qiet72 First draft |
sanboot:ubuntu_aoe [2010/09/17 05:03] (current) qiet72 |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Setting up an Ubuntu Installation to work with AOE ====== | ====== Setting up an Ubuntu Installation to work with AOE ====== | ||
| + | (Tested on Ubuntu Lucid 10.04 and Ubuntu Maverick 10.10) | ||
| - | First make sure you have a server with soem aoe software installed. If you use Linux as a server, get and install the "vblade" package. | + | First make sure you have a server with some aoe server software installed. If you use Linux as a server, get and install the "vblade" package. |
| - | On the client side, install a standard Ubuntu Desktop on a physical or virtual machine. | + | On the client side, install a standard Ubuntu Desktop on a physical or virtual machine. If you use a virtual machine, make the sure disk image is in 'raw' format, meaning no headers or such on the image. If it is a valid raw image, you should be able to see the partition table with, for example "fdisk -l disk.img" or even the "disktype" command, like so: |
| - | Use the following steps to make it aoe capable: | + | |
| - | First, login, start a terminal and become root: Applications -> Accessories -> Terminal": | + | <code> |
| + | $ disktype disk.img | ||
| - | Paste the following code into /etc/initramfs-tools/scripts/local-top/aoe | + | --- disk.img |
| + | Regular file, size 6 GiB (6442450944 bytes) | ||
| + | DOS/MBR partition map | ||
| + | Partition 1: 5.858 GiB (6290407424 bytes, 12285952 sectors from 2048, bootable) | ||
| + | Type 0x83 (Linux) | ||
| + | Ext3 file system | ||
| + | UUID 745D45C4-38FA-4B7C-85A3-71D37AE23AF3 (DCE, v4) | ||
| + | Volume size 5.858 GiB (6290407424 bytes, 1535744 blocks of 4 KiB) | ||
| + | Partition 2: 144 MiB (150994944 bytes, 294912 sectors from 12288000) | ||
| + | Type 0x82 (Linux swap / Solaris) | ||
| + | Linux swap, version 2, subversion 1, 4 KiB pages, little-endian | ||
| + | Swap size 144.0 MiB (150986752 bytes, 36862 pages of 4 KiB) | ||
| + | </code> | ||
| - | [code] | + | ===== Use the following steps to make the Ubuntu client aoe capable: ===== |
| - | #!/bin/sh | + | |
| - | sleep 1 # Wait for network driver | ||
| - | to load | ||
| - | ip link set eth0 up # Activate the network interface | ||
| - | sleep 3 # Wait for the network | ||
| - | interface to become active | ||
| - | echo 1 >/dev/etherd/discover # Start looking for aoe devices on the net | ||
| - | [/code] | ||
| + | First, start the client and login, then start a terminal and become root: Applications -> Accessories -> Terminal | ||
| + | == Paste the following code into a new file called /etc/initramfs-tools/scripts/local-top/aoe == | ||
| - | echo aoe >>/etc/initramfs-tools/modules | + | <code> |
| + | #!/bin/sh | ||
| + | sleep 1 # Wait for network driver to load | ||
| + | ip link set eth0 up # Activate the network interface | ||
| + | sleep 3 # Wait for the network interface to become active | ||
| + | echo 1 >/dev/etherd/discover # Start looking for aoe devices on the net | ||
| + | </code> | ||
| + | Then do these commands at the terminal: | ||
| + | <code> | ||
| + | sudo -s # Become root, if it asks for password, use the users password | ||
| + | chmod +x /etc/initramfs-tools/scripts/local-top/aoe # Make your script executable | ||
| + | apt-get install aoetools # Make sure you have the aoe tools installed | ||
| + | echo aoe >>/etc/initramfs-tools/modules # Add the aoe module to the modules list of initramfs | ||
| + | update-initramfs -u # Update initramfs with your changes, | ||
| + | # the changes will also take effect even with upgrades | ||
| + | </code> | ||
| - | Following is just brainstorming: | + | == Optional: Do the following if you want your eth0 interface to have the same name even if the image is booted on different machines == |
| + | <code> | ||
| + | sudo -s # Change to root access | ||
| + | rm /etc/udev/rules.d/70-persistent-net.rules # Get rid of this rule so that your current eth0 interface doesn't get changed | ||
| + | rm /lib/udev/rules.d/75-persistent-net-generator.rules # This re-creates the above, so get rid of it too | ||
| + | </code> | ||
| + | Note: I don't know if the above steps are the best way to make eth0 name static, but this is what works for me. | ||
| + | You are now finished with editing the client. Shutdown the client now. | ||
| - | sudo -s # Become root | + | ===== Last step: Transfer the image to the server ===== |
| - | apt-get install grub-pc # Install grub and make disk bootable | + | |
| - | rm /etc/udev/rules.d/70-persistent-net.rules | + | You could just copy the image as is, but it is even smarter to make a sparse file. That way only actual data is copied and not the empty sectors. You can do this under linux with the cp command: |
| - | rm /lib/udev/rules.d/75-persistent-net-generator.rules | + | <code> |
| + | cp --sparse=always disk.img /media/server-data/disk-images/disk.img | ||
| + | </code> | ||
| - | echo aoe >>/etc/initramfs-tools/modules | + | If you installed to a physical machine, boot up the machine with a live linux cd, become root and do this command: |
| + | <code> | ||
| + | cp --sparse=always /dev/sda /media/server-data/disk-images/disk.img | ||
| + | </code> | ||
| + | ===== Random Notes ===== | ||
| - | ---------- <snip> ------------------- | + | * If you don't install any proprietary video drivers, then what you got here is an image that will boot from either AOE, USB, or any internal/external disk on any machine. |
| - | #!/bin/sh | + | * Since Ubuntu is Debian based, these steps should work with Debian too but I haven't tried it myself |
| + | * You cannot create sparse images if you copy to a windows or samba network share, use nfs/ssh/nc (netcat) instead. Here is an example with nc (netcat): | ||
| - | sleep 1 # Wait for network driver | + | Client side: |
| - | to load | + | <code> |
| - | ip link set eth0 up # Activate the network interface | + | cat /dev/sda | nc -l -p 1234 |
| - | sleep 3 # Wait for the network | + | </code> |
| - | interface to become active | + | |
| - | echo 1 >/dev/etherd/discover # Start looking for aoe devices on the net | + | |
| - | ----------- <snip> -------------------------- | + | Server side: |
| + | <code> | ||
| + | nc <client-ip> 1234 | cp --sparse=always /dev/stdin disk.img | ||
| + | </code> | ||
| - | chmod +x /etc/initramfs-tools/scripts/local-top/aoe # Make your script | ||
| - | executable | ||
| - | update-initramfs -u | ||
| - | # Update initrd to include your changes | ||
| + | Created by --- //Quinn Plattel 2010/09/17 07:33// | ||