[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#652946: busybox tar fails to copy filesystem.squashfs



Today I've gave another try and this is still happening with today's sid 
build.

Following your hint that this is busybox related I've tried to find how 
far back this issue was happening using a patched live-build to use 
snapshots.debian.org. From the available daily installers this bug is 
present in all installers in http://d-i.debian.org/daily-images/i386. 
The only date I didn't confirm this bug was 20110509 because the 
installer stopped in the keyboard step. So I can assume this bug is 
present at least since 20110930.

I've tried to enable/disable config options in busybox udeb that were 
enabled since 20110930 (the last build I could reproduce this).

Looking at 
http://anonscm.debian.org/gitweb/?p=d-i/busybox.git;a=history;f=debian/config/pkg;hb=HEAD 
I've tried to disable in busybox udeb CONFIG_MKTEMP and 
CONFIG_SWITCH_ROOT, just because their names are suspicious. Didn't 
work. The installer stopped in the keyboard step without any of them.

I can't check all the busybox udeb changes to trace this, it takes too 
much time to do it without knowing why the changes were made.

Another factor is busybox upstream version change since squeeze. It went 
from 1.17 to actual 1.20. So, this can also be an upstream problem or 
something that changed upstream. I don't know busybox enough to trace 
this in upstream versions in debian-installer.

But, while I was messing with busybox udeb, I've tried to enable 
CONFIG_FEATURE_TAR_FROM and tried to exclude var/lock and var/run in 
busybox tar (not the target's tar as in my previous patches) and all 
worked ok.

In busybox:

@@ -152,7 +152,7 @@ CONFIG_GZIP_FAST=0
 CONFIG_TAR=y
 CONFIG_FEATURE_TAR_CREATE=y
 # CONFIG_FEATURE_TAR_AUTODETECT is not set
-# CONFIG_FEATURE_TAR_FROM is not set
+CONFIG_FEATURE_TAR_FROM=y
 # CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY is not set
 # CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set
 CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y

In live-installer:

@@ -42,9 +42,13 @@ install_live_system () {
 
 		COUNT=0
 		OLD_IFS=$IFS
+
+		echo 'var/lock' > /tmp/excludes
+		echo 'var/run' >> /tmp/excludes
+
 		mkdir -p /target
 		exec 4>&0
-		tar c . | \
+		tar c . -X /tmp/excludes | \
 		(chdir /target && tar xv) | \
 		(
 			while read line; do
@@ -60,6 +64,8 @@ install_live_system () {
 		exec 0>&4
 		IFS=$OLD_IFS
 
+		rm /tmp/excludes
+
 		chdir /
 		eval ${SUPPORT}_teardown
 	done

It worked, without using target tar and without chroot.

busybox udeb must be changed or the tar command will fail during the 
install.



Reply to: