From owner-freebsd-stable@FreeBSD.ORG Wed Apr 10 18:29:40 2013 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id AE06CEBF for ; Wed, 10 Apr 2013 18:29:40 +0000 (UTC) (envelope-from scdbackup@gmx.net) Received: from mout.gmx.net (mout.gmx.net [212.227.17.20]) by mx1.freebsd.org (Postfix) with ESMTP id 4A1C8AF for ; Wed, 10 Apr 2013 18:29:39 +0000 (UTC) Received: from mailout-de.gmx.net ([10.1.76.16]) by mrigmx.server.lan (mrigmx002) with ESMTP (Nemesis) id 0Lnmgj-1V4pZN3Mp5-00hu4M for ; Wed, 10 Apr 2013 20:29:38 +0200 Received: (qmail invoked by alias); 10 Apr 2013 18:29:38 -0000 Received: from 165.126.46.212.adsl.ncore.de [212.46.126.165] by mail.gmx.net (mp016) with SMTP; 10 Apr 2013 20:29:38 +0200 X-Authenticated: #2145628 X-Provags-ID: V01U2FsdGVkX18iS2ILGYIim1KHiAY3hHcDyYHVKBi2daX3qeRgB3 wBiRBjSnhiz9nx Date: Wed, 10 Apr 2013 20:29:24 +0200 From: "Thomas Schmitt" To: freebsd-stable@freebsd.org Subject: Re: Release ISO images have broken RockRidge data Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Message-Id: <4267633373880852212@scdbackup.webframe.org> X-Y-GMX-Trusted: 0 X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Apr 2013 18:29:40 -0000 Hi, Warren Block wrote: > sync will support hard links with -H But how shall rsync know that the files in the ISO image stem from hardlink siblings on the hard disk where the image was produced ? -------------------------------------------------------------------- I succeeded with this post-processing on a Linux system with bash after xorriso -for backup ... -extract / livefs : Learn the block address of content of /rescue/cat in the ISO image: lba=$(xorriso -indev ../FreeBSD-8.4-BETA1-amd64-livefs.iso \ -find /rescue/cat -exec report_lba -- 2>/dev/null | \ fgrep cat | \ awk '{print $6}') (Should yield 35682 with that image) Get a list of all files with that block address, except /rescue/cat : siblings=$(xorriso -indev ../FreeBSD-8.4-BETA1-amd64-livefs.iso \ -find / -sort_lba -lba_range "$lba" 1 \ -exec report_lba -- \ 2>/dev/null | \ grep '^File data lba' | awk '{print $12}' | \ sed -e "s/'//g" | grep -v '^/rescue/cat$' ) (This should yield 137 files: /rescue/[ ... /rescue/zpool ) Delete them in livefs/ and re-create them as links to livefs/rescue/cat: for i in $siblings do rm livefs$i ln livefs/rescue/cat livefs$i done This brings the size of livefs/rescue from 676772 KiB to 4924 KiB. ls -l livefs/rescue reports: total 676768 -r-xr-xr-x 138 thomas thomas 5007184 2013-03-20 04:14 [ -r-xr-xr-x 138 thomas thomas 5007184 2013-03-20 04:14 atacontrol ... -r-xr-xr-x 138 thomas thomas 5007184 2013-03-20 04:14 zpool -------------------------------------------------------------------- (Confessedly one could get the file list as well by ls -l and grepping for the size of livefs/rescue/cat.) -------------------------------------------------------------------- Have a nice day :) Thomas