Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | |||
debian_aoe_migrate [2007/08/24 14:57] bengen point out choice of real disk or chrooted image |
debian_aoe_migrate [2007/09/30 09:02] bengen |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Migrating Debian GNU/Linux 4.0 (etch) or later to an AoE target ====== | ||
- | You can either work witha an installation | ||
- | - that is running off a physical disk on a client machine or | ||
- | - a loopback-mounted disk image running as a ''chroot(8)'' environment | ||
- | |||
- | Install the ''aoetools'' package and a kernel image that includes the | ||
- | ''aoe'' driver, i.e. one of the ''linux-image-2.6.18-*'' drivers | ||
- | that ship with Debian/etch. | ||
- | |||
- | Create two scripts as shown below | ||
- | * ''/etc/initramfs-tools/hooks/aoetools'' will copy the ''aoe'' kernel module and ''/sbin/aoe-discover'' to the initial ramdisk. | ||
- | * ''/etc/initramfs-tools/scripts/local-top/aoetools'' is copied to the ram disk and run at boot-time, just before the root filesystem is mounted. If the root device string looks like an AoE target, it brings up all recognized Ethernet interfaces and activates the AoE driver. | ||
- | |||
- | After you have made sure that ''/etc/initramfs-tools/initramfs.conf'' | ||
- | contains the line | ||
- | BUSYBOX=y | ||
- | you can update the initial ramdisk: | ||
- | # update-initramfs -u -k all | ||
- | |||
- | FIXME Create/update ''/etc/fstab'' | ||
- | |||
- | FIXME Create/update ''/boot/grub/menu.lst'' | ||
- | |||
- | If the modifications were applied to a physical disk on the client | ||
- | machine, you can now [[santransfer|transfer]] the contents of your | ||
- | physical disk to the SAN target. | ||
- | |||
- | If the image you wish to export to client systems was modified directly,, | ||
- | just make the contents of that image [[sanexport|available]]. | ||
- | |||
- | ==== Hints ==== | ||
- | * If the system hangs before the root device has been mounted, passing ''break=mount'' on the command line will spawn a shell before `scripts/local-top/aoetools' is run. This should allow for further debugging. | ||
- | |||
- | |||
- | ===== Configuration files ===== | ||
- | ==== /etc/initramfs-tools/hooks/aoetools ==== | ||
- | <code bash> | ||
- | #!/bin/sh | ||
- | |||
- | set -e | ||
- | |||
- | PREREQ="" | ||
- | |||
- | prereqs() | ||
- | { | ||
- | echo "$PREREQ" | ||
- | } | ||
- | |||
- | case $1 in | ||
- | prereqs) | ||
- | prereqs | ||
- | exit 0 | ||
- | ;; | ||
- | esac | ||
- | |||
- | . /usr/share/initramfs-tools/hook-functions | ||
- | |||
- | [ -x /sbin/aoe-discover ] && copy_exec /sbin/aoe-discover /sbin | ||
- | manual_add_modules aoe | ||
- | </code> | ||
- | |||
- | ==== /etc/initramfs-tools/scripts/local-top/aoetools ==== | ||
- | <code bash> | ||
- | #!/bin/sh | ||
- | |||
- | set -e | ||
- | |||
- | PREREQ="" | ||
- | |||
- | prereqs() | ||
- | { | ||
- | echo "$PREREQ" | ||
- | } | ||
- | |||
- | case $1 in | ||
- | prereqs) | ||
- | prereqs | ||
- | exit 0 | ||
- | ;; | ||
- | esac | ||
- | |||
- | case $ROOT in | ||
- | /dev/etherd/e*) | ||
- | INTERFACES=`awk -F: '/eth[0-9]*:/ { print $1 }' < /proc/net/dev` | ||
- | for i in $INTERFACES; do | ||
- | echo Bringing up interface $i for AoE | ||
- | ifconfig $i up | ||
- | done | ||
- | sleep 5 | ||
- | modprobe aoe | ||
- | aoe-discover | ||
- | ;; | ||
- | esac | ||
- | </code> | ||