From owner-freebsd-hackers@FreeBSD.ORG Sun Feb 13 03:49:27 2011 Return-Path: Delivered-To: hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B1D18106566B for ; Sun, 13 Feb 2011 03:49:27 +0000 (UTC) (envelope-from perryh@pluto.rain.com) Received: from agora.rdrop.com (agora.rdrop.com [IPv6:2607:f678:1010::34]) by mx1.freebsd.org (Postfix) with ESMTP id 9097E8FC15 for ; Sun, 13 Feb 2011 03:49:27 +0000 (UTC) Received: from agora.rdrop.com (66@localhost [127.0.0.1]) by agora.rdrop.com (8.13.1/8.12.7) with ESMTP id p1D3nJnd088004 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Sat, 12 Feb 2011 19:49:19 -0800 (PST) (envelope-from perryh@pluto.rain.com) Received: (from uucp@localhost) by agora.rdrop.com (8.13.1/8.12.9/Submit) with UUCP id p1D3nJ8G088002; Sat, 12 Feb 2011 19:49:19 -0800 (PST) Received: from fbsd61 by pluto.rain.com (4.1/SMI-4.1-pluto-M2060407) id AA27805; Sat, 12 Feb 11 19:46:15 PST Date: Sat, 12 Feb 2011 19:45:27 -0800 From: perryh@pluto.rain.com To: tim@kientzle.com Message-Id: <4d5753d7.BT5wqP8CnfTD02s8%perryh@pluto.rain.com> References: <201102111909.p1BJ9UAE097045@fire.js.berklix.net> <66758C9D-DCE2-4381-A4B1-956A48423CDD@kientzle.com> In-Reply-To: <66758C9D-DCE2-4381-A4B1-956A48423CDD@kientzle.com> User-Agent: nail 11.25 7/29/05 Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: jhs@berklix.com, hackers@freebsd.org Subject: Re: memstick.img is bloated with 7% 2K blocks of nulls X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 13 Feb 2011 03:49:27 -0000 Tim Kientzle wrote: > The strategy used by libarchive's recent ISO writer > is to concatenate the file bodies into a temp file > (with minimal padding between entries to meet alignment > requirements) while storing directory information > in memory. The final output then consists of the > directory information followed by the concatenated > file bodies. > > I suspect a similar strategy could be used to lay > out and write a read-only optimized UFS image ... > I think it's probably feasible but I doubt very > much of the existing UFS code can be recycled for > such a project. There was at one time a capability in mkfs(8) -- which no longer even exists as a separate entity, having been absorbed into newfs(8) -- to pre-populate the filesystem with specified content. Dunno if it was ever in any BSD release -- it's not mentioned in the 4.2BSD-derived SunOS 4.1.1 manpage -- so I may be remembering it from Bell Labs 6th edition on the PDP-11. The code to collect and write all of an existing filesystem's directories, followed by all of its files, exists in dump(8).