FAI dying during partition setup

Ryan Steele ryans at aweber.com
Mon Sep 29 20:36:11 CEST 2008


Ryan Steele wrote:
> Recently, I've been trying to set up LVM clients with FAI 3.2.4 for 
> Ubuntu, using Peter Gervai's well-placed LVM hooks.  However, I keep 
> hitting the situation where sfdisk cannot read the partition table, 
> and mke2fs cannot create a filesystem, because it thinks the device is 
> in use.  It's reproducible every time if I FAI-install the client more 
> than once.  E.g., the first time I FAI-install the LVM-enabled host, 
> it works.  But then, if I try it again (with the exact same 
> disk_config), sfdisk and mke2fs drop me to an emergency shell.  I 
> would guess it's because it's unable to get the kernel to re-read the 
> partition table without a reboot, but I'm really not sure how FAI can 
> get around that situation, as there is currently no method for having 
> FAI "pick up where it left off" right after writing the partition table.
>
> Has anybody else encountered this?  It really makes FAI unusable.  
> Here's the output from FAI when this happens (from fai.log).  
> /dev/sda2 was my LVM volume:
>
> Calling task_install
> Calling task_partition
> Partitioning local harddisks
> setup_harddisks version 0.43fai
> Probing disks:  /dev/sda
> Disks found: sda
>
> Using config file: /var/lib/fai/config/disk_config/COSTELLO
> Mapping disk name disk1 to sda
> Creating partition table: LC_ALL=C sfdisk -q  /dev/sda < 
> /tmp/fai/partition.sda
> BLKRRPART: Device or resource busy
> BLKRRPART: Device or resource busy
> The command to re-read the partition table failed
> Reboot your system now, before using mkfs
> Creating file systems:
>  mke2fs -q -c -j /dev/sda1
>  mke2fs -q /dev/sda2
> /dev/sda2 is apparently in use by the system; will not make a 
> filesystem here!
>
> MKE2FS ERROR:
>
> setup_harddisks version 0.43fai
> Probing disks:  /dev/sda
> Disks found: sda
>
> Using config file: /var/lib/fai/config/disk_config/COSTELLO
> Mapping disk name disk1 to sda
> Creating partition table: LC_ALL=C sfdisk -q  /dev/sda < 
> /tmp/fai/partition.sda
> Creating file systems:
>  mke2fs -q -c -j /dev/sda1
>  mke2fs -q /dev/sda2
> Save log files via ssh to fai at faimaster:costello/install-20080929_142911
>

It may be worth noting that, from the emergency shell, 'lsof | grep sda' 
returns nothing, and swapoff and umount have no effect (because nothing 
on /dev/sda* is mounted).   I've run partprobe, which hasn't helped, and 
'sfdisk -R' and 'sfdisk -R -f' returns "BLKRRPART: Device or resource 
busy ".  I've also tried adding '--no-reread' to setup_harddisk's sfdisk 
options to no avail.  I have no idea why it thinks that device is in 
use.  All that really should have happened with them since boot is their 
creation by udev.

On a whim, I used dd and /dev/zero to overwrite the partition table so 
FAI would have something 'fresh' to start with, but I end up with 
similar results - an emergency shell after mke2fs.  I'm at a bit of a 
loss as to what's going on here, but this only started after I began 
installing LVM devices.  For completeness here's what I added to get LVM 
support:

1. class SW_RAID.var
root at faimaster:/srv/fai/config# cat /srv/fai/config/class/SW_RAID.var
SW_RAID_CONFIG="
"

LVM_VG_CONFIG="
sys[]=/dev/sda2
"

LVM_LV_CONFIG="
sys/root[-n root ]=1G:/:ext3:
sys/home[-n home ]=2G:/home:ext3:
sys/swap[-n swap ]=1G:/swap:swap:
sys/srv[-n srv ]=1G:/srv:ext3:
sys/var[-n var ]=1G:/var:ext3:
sys/varlog[-n varlog]=1G:/var/log:ext3:
"

2. Added "dm_mod" to the list of kernelmodules in 20-hwdetect.source

3. disk_config for the client
root at faimaster:/srv/fai/config# cat /srv/fai/config/disk_config/COSTELLO
# <type> <mountpoint> <size in mb> [mount options]     [;extra options]
disk_config disk1
primary  /boot         1000        rw,errors=remount-ro ; boot -c -j ext3
primary  -                 1024-       rw

4. Last but not least, hooks/mountdisks.SW_RAID and 
hooks/mountdisks.SW_RAID.source, as described on Peter Gervai's faiwiki 
page.


More information about the linux-fai mailing list