Hello,
I am pretty sure that the problem lies with the call to the CREATE_FILE_SYSTEM function of parted_server in commit.d/format_swap of partman-basicfilesystems. Before running partman I've inserted some extra statements into this script so that it looks like this:
--modified part of /lib/partman/commit.d/45format_swap---------------------- echo "before: device=${dev} id=${id}" > /partman.log /sbin/parted /dev/discs/disc1/disc print >> /partman.log 2>&1 open_dialog CREATE_FILE_SYSTEM $id linux-swap read_line status close_dialog sync echo " after: status=${status}" >> /partman.log 2>&1 /sbin/parted /dev/discs/disc1/disc print >> /partman.log 2>&1 ----------------------------------------------------------------------------
After that I used partman to create two partitions on /dev/sdb, one 256 MB for swap and the rest (1.9 GB) for home. Initially disk had a freshly created disklabel, so all the space was shown as FREE. After the changes were committed, the file /partman.log contents read:
--debugging output in /partman.log------------------------------------------ before: device=/var/lib/partman/devices/=dev=scsi=host0=bus0=target1=lun0=disc id=0-255221759 Disk geometry for /dev/scsi/host0/bus0/target1/lun0/disc: 0.000-2063.830 megabytes Disk label type: sun Minor Start End Filesystem Flags 1 0.000 243.398 2 243.398 2062.801 ext3 after: status=OK Disk geometry for /dev/scsi/host0/bus0/target1/lun0/disc: 0.000-2063.830 megabytes Disk label type: loop Minor Start End Filesystem Flags 1 0.000 2063.830 linux-swap ----------------------------------------------------------------------------
So, even though CREATE_FILE_SYSTEM call to parted_server returns status OK, it really screws the partition table up. The relevant pieces of log from /var/log/partman are (some blank lines removed):
--output in /var/log/partman------------------------------------------------ parted_server: Closing infifo and outfifo parted_server: main_loop: iteration 100 parted_server: Opening infifo /lib/partman/commit.d/45format_swap: IN: CREATE_FILE_SYSTEM =dev=scsi=host0=bus0=target1=lun0=disc 0-255221759 linux-swap parted_server: Read command: CREATE_FILE_SYSTEM parted_server: Note =dev=scsi=host0=bus0=target1=lun0=disc as changed parted_server: Opening outfifo parted_server: command_create_file_system(0-255221759,linux-swap) parted_server: partition_with_id(0-255221759) parted_server: OUT: Timer parted_server: OUT: 0 (null) /lib/partman/commit.d/45format_swap: error_handler: exception with type Timer parted_server: OUT: ready parted_server: OUT: OK parted_server: OUT: OK parted_server: Closing infifo and outfifo ----------------------------------------------------------------------------
This also does not look too good. Hopefully, someone with more experience in parted_server and/or libparted can put this information to good use. To tell the truth, I do not quite understand, why parted_server is used for formatting swap partitions when there is the mkswap utility available in d-i. There is even a piece of (questionable) logic in format_swap, which calls mkswap if the CREATE_FILE_SYSTEM call fails! I have tried to implement a simple workaround by completely removing the CREATE_FILE_SYSTEM call and using mkswap instead, patch follows:
--cut here---------------------------------------------------------------- diff -aur partman-basicfilesystems-36_orig/commit.d/format_swap partman-basicfilesystems-36/commit.d/format_swap --- partman-basicfilesystems-36_orig/commit.d/format_swap 2004-09-24 03:30:32.000000000 -0400 +++ partman-basicfilesystems-36/commit.d/format_swap 2004-12-11 02:08:01.000000000 -0500 @@ -32,24 +32,19 @@ db_subst $template PARTITION "$num" db_subst $template DEVICE $(humandev $(cat device)) name_progress_bar $template - open_dialog CREATE_FILE_SYSTEM $id linux-swap - read_line status - close_dialog - sync - if [ "$status" != OK ]; then - db_progress START 0 3 partman/text/formatting - db_progress INFO $template - db_progress SET 1 - if - mkswap $device >/dev/null 2>>/var/log/messages - then - sync - status=OK - else - status=failed - fi - db_progress STOP + + db_progress START 0 3 partman/text/formatting + db_progress INFO $template + db_progress SET 1 + if + mkswap $device >/dev/null 2>>/var/log/messages + then + sync + status=OK + else + status=failed fi + db_progress STOP
if [ "$status" != OK ]; then db_subst partman-basicfilesystems/create_swap_failed TYPE linux-swap --cut here------------------------------------------------------------------
With this patch applied everything seems to work as expected, after formatting parted displays correct partition information:
--output of parted /dev/discs/disc1/disc print------------------------------ Disk geometry for /dev/scsi/host0/bus0/target1/lun0/disc: 0.000-2063.830 megabytes
Disk label type: sun
Minor Start End Filesystem Flags
1 0.000 243.398 linux-swap 2 243.398 2062.801 ext3 ----------------------------------------------------------------------------
Best regards,
Jurij Smakov [EMAIL PROTECTED] Key: http://www.wooyd.org/pgpkey/ KeyID: C99E03CC
-- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]