• Home
  • Help
  • Search
  • Login
  • Register
Pages: [1]
Author Topic: Busybox tar: "corrupted octal value in tar header" rootfs.tar.gz  (Read 5638 times)
Blr. Development Tools
Newbie
*

Karma: 0
Posts: 3


View Profile
« on: November 23, 2009, 02:19:14 AM »

Hi to all,

first of all a want to tell thank you for great SheevaPlug and installer!
I have a problem when I try to install my custom rootfs.tar.gz using installer way, I get an error
when installer procedure try to decompress my rootfs.tar.gz, the error is <tar: "corrupted octal value in tar header">

So here the steps that I done:

1. update my sheeva with installer 1.0 and its original rootfs.tar.gz
2. install my package apache2, php etc... change root password and hostname.
3. recreate my custom rootfs.tar.gz in this way:
#
# From SheevaPlug
#
# Insert my usbkey on it (formatted as ext3)
# Create a folder usb (mkdir /usb)
# Mount it in a folder that I created (mount /dev/sda1 /usb)
# Copy all rootfs file inside usb folder (cp -ax / /usb)
# Copy Dev folder (cp - a /dev /usb)
# Unmount usbkey (umount /usb)
#
# From my ubuntu 9.0.4 box
#
# Mount usbkey (it is automounted from ubuntu in a folder /media/USB)
# change dir to usbkey (cd /media/USB)
# Tar my rootfs (sudo tar -zcf /tmp/rootfs.tar.gz *)
# the resulted image is an rootfs.tar.gz about 223.9 MB (234802572 bytes)
#
4. Prepare an USBKEY for installer 1.0
5. Format it as fat32
6. Copy the files inside it
# My custom rootfs.tar.gz
# initrd (original file of installer 1.0)
# modules.tar.gz (original file of installer 1.0)
# uImage (original file of installer 1.0)
7. Move to installer folder
8. Run sudo php ./runme.php nand

When installer try to decompress my custom rootfs.tar.gz it return the error <tar: "corrupted octal value in tar header">
Maybe are there some option that I have to add when I Tar my rootfs ?

I also tried to install busybox on my ubuntu, and try to compress my rootfs.tar.gz using busybox tar: (sudo busybox tar -czf /tmp/rootfs.tar.gz *)
but it always return <tar: short write>

Some infos:
Linux ubuntu uname -a:
# Linux BLRBOOK 2.6.28-11-generic #42-Ubuntu SMP Fri Apr 17 01:57:59 UTC 2009 i686 GNU/Linux
Tar command version
# tar (GNU tar) 1.20
# Copyright (C) 2008 Free Software Foundation, Inc.
# License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
# This is free software: you are free to change and redistribute it.
# There is NO WARRANTY, to the extent permitted by law.
#
# Written by John Gilmore and Jay Fenlason.


Could somebody help me to resolve this problem please ?
I googled about  "corrupted octal value in tar header" and seam that busybox must be compiled with this flag
CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y

If so, could installer Team provide a path ?

Thank you very much for any help and still a great compliment to all people that support SheevaPlug project!

Andrea










Logged

rooster
Administrator
Sr. Member
*****

Karma: 8
Posts: 311


View Profile
« Reply #1 on: November 23, 2009, 08:12:54 AM »

What is the size of the RFS before you compressed it?
From the rootfs.tar.gx size you posted, I think you might be running out of memory since the initrd runs in RAM and tries to decompress the the tarball in RAM
Logged

Blr. Development Tools
Newbie
*

Karma: 0
Posts: 3


View Profile
« Reply #2 on: November 23, 2009, 10:46:31 AM »

Hi rooster,

I done few tests, the first was to reduce size of rootfs.tar.gz but I was not a solution... (from 223 to 196)
I found a solution, but honestly I don't know what was the problem, maybe you can help me to understand.

before to copy rootfs on usbkey I stopped these services:

/etc/init.d/apache2 stop
/etc/init.d/cron stop
/etc/init.d/firebird2.0-super stop [my custom package]
/etc/init.d/networking stop
/etc/init.d/ssh stop
/etc/init.d/udev stop

an then it worked, I think that probably the problem is /dev folder could be ?

Here my solution for to make a custom Sheevaplug :

# Sheevaplug
1. Install what you need...
2. Stop all services that you don't need, in my case are:
# /etc/init.d/apache2 stop
# /etc/init.d/cron stop
# /etc/init.d/firebird2.0-super stop
# /etc/init.d/networking stop
# /etc/init.d/ssh stop
# /etc/init.d/udev stop
#
3. mount USBKEY ext3 formatted in a favorite place, e.g. /usb
# mount /dev/sda1 /usb
#
4. Change dir and copy the rootfs
# cd /
# cp -ax / /usb
# cp -a /dev /usb
#
5. Umount your USBKEY
# umount /usb
#
6. Remove the USBKEY from SheevaPlug and plug it on your Linux box
7. Change to the USBKEY dir in my case /media/SHEEVA_USB
# cd /media/SHEEVA_USB
#
8. Tar your rootfs
# sudo tar -zcf /tmp/rootfs.tar.gz *
#
9. Copy new image on usb installer folder and run installer 1.0


thank you very much for your answer rooster!

Andrea


« Last Edit: October 21, 2010, 06:12:50 AM by Blr. Development Tools » Logged

rooster
Administrator
Sr. Member
*****

Karma: 8
Posts: 311


View Profile
« Reply #3 on: November 23, 2009, 12:40:09 PM »

Hi Andrea,

There might be some problems with making a RFS tarball from a live file system, for example hard links and soft links could result in getting two instances of the same file thus enlarging the footprint of the RFS.
You also do not want to copy /proc and /sys and any tmpfs mounted.

Why not just use the ubuntu 9.04 RFS install it to SD with the installer, add to it whatever application you need and then just make a copy of it while running from NAND or on a PC, this way you will not be making a live RFS copy and this will be more clean.
Logged

Blr. Development Tools
Newbie
*

Karma: 0
Posts: 3


View Profile
« Reply #4 on: November 24, 2009, 01:32:47 AM »

Hi rooster,

I'll try and I'll let you know.

I'll install ubuntu on SD card then tar the content of SD card without /proc and /sys folder and install on NAND.

Thank you very much for tip.

Andrea
Logged

Pages: [1]
Print
Jump to: