Bug 35150

Summary: FreeBSD 4.5 won't install ... out of inodes
Product: Base System Reporter: Rex Buddenberg <budden>
Component: miscAssignee: freebsd-bugs (Nobody) <bugs>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: Unspecified   
Hardware: Any   
OS: Any   

Description Rex Buddenberg 2002-02-20 18:30:01 UTC
Installation (over ftp) crashes partway through.  Screen complaint is inability to make symbolic links, out of inodes.  

The disk is only about half full, no slices pushing available capacity. 

Problem recurred on two different disk drives, same machine.


I did not get this problem with a 4.5 installation on a Keynote laptop with 8G drive ... that installation was normal.

FreeBSD 4.4 installation works normally on the above-described setup (am finishing that up right now).  

Therefore, appears to be a directory layout problem in 4.5

How-To-Repeat: ftp install on the machines
Comment 1 wimac 2002-02-22 08:58:00 UTC
I've come across exactly the same problem on a 2G disk drive Auto FS layout.

I resolve it by changing the newfs options on install.. well rather removing
all options.
ie: just leave the newfs (and not -b 16k -...)

Defaults should be changed.

Later,
Bill
--
William McNAMARA
mailto:wimac@tidhom1g.grenoble.hp.com
B1N2H1
Comment 2 Crist J. Clark freebsd_committer freebsd_triage 2002-02-22 14:04:32 UTC
Is it possible to get the 'df -i' output for the partitions on the
drive?
-- 
Crist J. Clark                     |     cjclark@alum.mit.edu
                                   |     cjclark@jhu.edu
http://people.freebsd.org/~cjc/    |     cjc@freebsd.org
Comment 3 crist.clark 2002-02-22 19:39:06 UTC
On Fri, Feb 22, 2002 at 10:30:42AM -0800, Buddenberg, Rex wrote:
> Bill, Christ,
> 
> We're pretty close to the smoking gun ... here's what I squeezed out of the
> drive:
> 
> 
> Filesystem  1K-blocks     Used    Avail Capacity iused   ifree  %iused
> Mounted on
> /dev/ad0s1a	257980	62800	   174544	26%	1276	14978	8%
> /
> 
> Note that /usr doesn't show up on the troubled drive at all (and vfstab is
> entirely
> missing from /etc). I manually mounted /dev/ad0s1f to /usr where it belongs
> and
> got this:
> /dev/ad0s1f	515996	124	   474596	0%	3	32507	0%
> /usr

Yep. Looks like 16K blocks in each.

> 
> On a normal FreeBSD 4.4 installation (similar sized disk), I got this:
> 
> /dev/ad0s1a     99183    32339    58910    35%    1498   23588     6%   /
> /dev/ad0s1f    964359   642238   244973    72%   82806  159240    34%   /usr
> /dev/ad0s1e     19815     1777    16453    10%     286    4768     6%   /var
> procfs              4        4        0   100%      42     490     8%
> /proc

Those are 4K blocks? I would expect 8K from newfs(8)'s source.

>  I used all the default settings on installation ... no tweaks whatsoever.
> Since I can boot up in single user mode, the problem appears to show up
> wholly
> in /usr.

No, it just that there are that many more files in /usr that you ran
out of inodes in /usr. The default 8K to 16K was changed in revision
1.30.2.8 of newfs.c.

A 500 MB partition is tiny by today's standards. Sometime you have to
make the choice, do you focus support the few using _really_ old stuff
or the majority on much newer hardware. Of course, the other
possibility is to make sysinstall(8) smarter about this kind of thing
(and about partition sizing, and about...), but someone can always
figure out a situation where any simple rules break down and the
discussions tend to bikeshed.

So, I don't really think the bug is in newfs(8). newfs(8) does not
really need to be too smart. I think if there is a bug here at all, it
would be sysinstall(8) not being smart enough to tell newfs(8) how to
do things better.
-- 
Crist J. Clark                     |     cjclark@alum.mit.edu
                                   |     cjclark@jhu.edu
http://people.freebsd.org/~cjc/    |     cjc@freebsd.org
Comment 4 Rex Buddenberg 2002-02-22 21:03:03 UTC
I think i follow the analysis, Crist.  Thanks.

And yes, smartening up Sysinstall would be the right approach.  Perhaps a
better one would be to smarten up the documentation so dummies like me know
what overrides make sense.

So ... what should I do at installation time to make 4.5 run properly on
these beasts?

Thanks again.

> -----Original Message-----
> From: Crist J. Clark [mailto:crist.clark@attbi.com]
> Sent: Friday, February 22, 2002 11:39 AM
> To: Buddenberg, Rex
> Cc: 'Bill McNAMARA'; bug-followup@freebsd.org
> Subject: Re: misc/35150: FreeBSD 4.5 won't install ... out of inodes
> 
> 
> On Fri, Feb 22, 2002 at 10:30:42AM -0800, Buddenberg, Rex wrote:
> > Bill, Christ,
> > 
> > We're pretty close to the smoking gun ... here's what I 
> squeezed out of the
> > drive:
> > 
> > 
> > Filesystem  1K-blocks     Used    Avail Capacity iused   
> ifree  %iused
> > Mounted on
> > /dev/ad0s1a	257980	62800	   174544	26%	1276	
> 14978	8%
> > /
> > 
> > Note that /usr doesn't show up on the troubled drive at all 
> (and vfstab is
> > entirely
> > missing from /etc). I manually mounted /dev/ad0s1f to /usr 
> where it belongs
> > and
> > got this:
> > /dev/ad0s1f	515996	124	   474596	0%	3	
> 32507	0%
> > /usr
> 
> Yep. Looks like 16K blocks in each.
> 
> > 
> > On a normal FreeBSD 4.4 installation (similar sized disk), 
> I got this:
> > 
> > /dev/ad0s1a     99183    32339    58910    35%    1498   
> 23588     6%   /
> > /dev/ad0s1f    964359   642238   244973    72%   82806  
> 159240    34%   /usr
> > /dev/ad0s1e     19815     1777    16453    10%     286    
> 4768     6%   /var
> > procfs              4        4        0   100%      42     
> 490     8%
> > /proc
> 
> Those are 4K blocks? I would expect 8K from newfs(8)'s source.
> 
> >  I used all the default settings on installation ... no 
> tweaks whatsoever.
> > Since I can boot up in single user mode, the problem 
> appears to show up
> > wholly
> > in /usr.
> 
> No, it just that there are that many more files in /usr that you ran
> out of inodes in /usr. The default 8K to 16K was changed in revision
> 1.30.2.8 of newfs.c.
> 
> A 500 MB partition is tiny by today's standards. Sometime you have to
> make the choice, do you focus support the few using _really_ old stuff
> or the majority on much newer hardware. Of course, the other
> possibility is to make sysinstall(8) smarter about this kind of thing
> (and about partition sizing, and about...), but someone can always
> figure out a situation where any simple rules break down and the
> discussions tend to bikeshed.
> 
> So, I don't really think the bug is in newfs(8). newfs(8) does not
> really need to be too smart. I think if there is a bug here at all, it
> would be sysinstall(8) not being smart enough to tell newfs(8) how to
> do things better.
> -- 
> Crist J. Clark                     |     cjclark@alum.mit.edu
>                                    |     cjclark@jhu.edu
> http://people.freebsd.org/~cjc/    |     cjc@freebsd.org
>
Comment 5 tarjei.jensen 2002-03-18 12:29:44 UTC
I had the same problem, just so nobody think the original poster is alone
with the problem.

Just re-iterate the problem:
I just tried to install FreeBSD 4.5 on a 1,2GB harddisk. I tried to install
user, ports and Linux support.

How I fixed it:
Since the install failed because the system ran out of inodes on the /usr
partition during the Linux support install, I changed the inode size to 2K
by adding "-i 2048" to the newfs parameter list in the options page in
sysinstall.

Perhaps the install program should be a bit smarter with regards to inode
sizes on the various partitions? Or perhaps the install program should let
newfs decide on its own how big the various parameters should be?

Perhaps this is such a showstopper that a new iso should be issued?


greetings,
Comment 6 Jens Schweikhardt freebsd_committer freebsd_triage 2002-08-09 17:30:17 UTC
State Changed
From-To: open->closed

It is unlikely that anyone will beat the dead horse (sysinstall) 
to be smarter about the case of small disks. The workaround, as 
people have noted, is to modify the newf -i option value.