# freebsd-update install interrupted



## sergun (Dec 24, 2009)

Today I tried to make binary update of 7.2 to 8.0.

Running of "freebsd-update install" was interrupted with the message:


```
Installing updates...
/: write failed, filesystem is full
install: ///boot/kernel/INS@lSqp: No space left on device
```

I have cleaned up some space in "/" partition and run "freebsd-update install" again.

After some pause it gives a lot of messages in output.. Don't remember them exactly, something like: "Segmentation fault..".

Can you please advise what I had do wrong?
What can I do now?


----------



## Beastie (Dec 24, 2009)

What's the output of `% df -h`?

Segmentation faults are bad. You've either found a bug somewhere or you have a hardware (memory) problem.


----------



## sergun (Dec 24, 2009)

Beastie said:
			
		

> What's the output of `% df -h`?
> 
> Segmentation faults are bad. You've either found a bug somewhere or you have a hardware (memory) problem.



Not sure about hardware.. The system has been working fine.

Can't check `% df -h` right now. I executed it earlier after boot try. It didn't showed /var, /usr, /tmp mounted. Just / and some other (swap?). I mounted them and tried to execute "/usr/sbin/freebsd-update install" but it failed: "id" command not found.. I checked and didn't found "id" in /usr/bin/

As I wrote in the beginning of the thread execution of "freebsd-update install" was interrupted because of root partition had no space (The reason was in /root folder. I stored here a lot of files).
But I'm not sure that is legal to execute "freebsd-update install" again after such abort (as I did after cleaning up /root..)

What can I do? Probably I can start upgrade from FreeBSD 8.0 installation CD?


----------



## Beastie (Dec 24, 2009)

You're not giving us a lot of information to work with and you seem to have more than one problem (possibly related?), so it's quite difficult to make a diagnosis: you may have flooded partitions during the upgrade, or corrupted or deleted conf files, or damaged /etc/fstab, or your root partition may be too small, etc.

After a binary *upgrade* from a disc1 (sysinstall), your old /etc directory will be restored, if I'm not mistaken. If conf files are already not working, they won't work any better after the upgrade.

Since we have no idea what went wrong and investigating might take a dozen more posts, I suggest you just *install* from a 8.0 disc1 (instead of upgrading).
From sysintall's main menu, choose to do a custom installation.
In sysinstall's bsdlabel you'll have to mount (press 'm') the partitions on the right mount points, for example da1s2d on /tmp. Be sure to do that right and clear the entire partitions by "newfsing" (press 't') each one of them.
Having a separate /home partition may be a good idea. If you don't have any unused space on the slice, you'll have to delete all the partitions (/, /var, /usr, etc.) and recreate them again, including a new partition for /home.
Make backups if you need.

And don't store *anything* on /root anymore, which is the root user's home directory. If you're using root for daily work, stop doing so, create a new user account and use that instead. Never even su(1) to- or log in as root unless it's *absolutely necessary*.


----------



## fronclynne (Dec 24, 2009)

/usr/sbin/freebsd-update is just a sh(1) script that calls things like sed & mkdir & touch & fetch & gunzip.  If it got halfway through updating and then died it might leave a bunch of 8.x binaries trying to run on a 7.x kernel, which would of course cause segmentation faults when one tries to run it again.


----------



## Beastie (Dec 25, 2009)

Yes, you're right. That must definitely be the cause of the segfault. I didn't think of the most simple and obvious reason, damn! :r


----------



## sergun (Dec 25, 2009)

I thing that the reason of fail was a lot of stuff in root partition. I suppose that conf files were merged successfully on first stage of freebsd-upgrade.
In my opinion what I need are fully updated binaries and kernel of version 8.0.
Is it possible to do with *upgrade& from disc1?
You propose to re-*install* with keeping /usr /var /tmp (and don't re-install all ports ageain?)? 



			
				Beastie said:
			
		

> You're not giving us a lot of information to work with and you seem to have more than one problem (possibly related?), so it's quite difficult to make a diagnosis: you may have flooded partitions during the upgrade, or corrupted or deleted conf files, or damaged /etc/fstab, or your root partition may be too small, etc.
> 
> After a binary *upgrade* from a disc1 (sysinstall), your old /etc directory will be restored, if I'm not mistaken. If conf files are already not working, they won't work any better after the upgrade.
> 
> ...


----------



## sergun (Dec 25, 2009)

Can this be fixed in simple way?



			
				fronclynne said:
			
		

> /usr/sbin/freebsd-update is just a sh(1) script that calls things like sed & mkdir & touch & fetch & gunzip.  If it got halfway through updating and then died it might leave a bunch of 8.x binaries trying to run on a 7.x kernel, which would of course cause segmentation faults when one tries to run it again.


----------



## Beastie (Dec 25, 2009)

sergun said:
			
		

> I thing that the reason of fail was a lot of stuff in root partition. I suppose that conf files were merged successfully on first stage of freebsd-upgrade.
> In my opinion what I need are fully updated binaries and kernel of version 8.0.
> Is it possible to do with *upgrade& from disc1?
> You propose to re-*install* with keeping /usr /var /tmp (and don't re-install all ports ageain?)?


Since the upgrade was interrupted, there's no guarantee that vital conf files are valid unless 1) you can boot successfully from your disk and 2) check the conf files you've modified yourself. But you cannot complete the first step since the binary base system is messed up.
Yes, you can try an upgrade from disc1. But there are still chances it won't work.

Your ports are currently linked to 7.2 libraries and will not work with a 8.0 base system unless you install compat7. But it's usually only a temporary measure.
It's always better to upgrade ports too after you upgrade the base system.




			
				sergun said:
			
		

> Can this be fixed in simple way?


There are probably thousands of damaged or missing files and the only way to know which ones are and which ones aren't, is to use an existing 8.0 system for a binary comparison of the entire file hierarchy.
I can only suggest you make proper backups, try to upgrade your existing setup (or install over it) and see if it can boot.


----------



## sergun (Dec 25, 2009)

The system boots only in single user mode.
Normal boot is interrupted because of fsck_ufs not found..
After mounting all partitions I don't see fsck_ufs binary,
some other binaries are missing as well, for example: grep, id
"uname -a" shows 8.0 kernel.

Reg. re-installation you wrote to me:


			
				Beastie said:
			
		

> In sysinstall's bsdlabel you'll have to mount (press 'm') the partitions on the right mount points, for example da1s2d on /tmp. Be sure to do that right and clear the entire partitions by "newfsing" (press 't') each one of them.


Will "newfsing" remove content of existing partitions?
What will do installation if I will just mount partitions (not press 't' on each of them)?





			
				Beastie said:
			
		

> Since the upgrade was interrupted, there's no guarantee that vital conf files are valid unless 1) you can boot successfully from your disk and 2) check the conf files you've modified yourself. But you cannot complete the first step since the binary base system is messed up.
> Yes, you can try an upgrade from disc1. But there are still chances it won't work.
> 
> Your ports are currently linked to 7.2 libraries and will not work with a 8.0 base system unless you install compat7. But it's usually only a temporary measure.
> ...


----------



## Beastie (Dec 26, 2009)

sergun said:
			
		

> Will "newfsing" remove content of existing partitions?


Completely, yes (at least theoretically). newfs(8) creates a new filesystem.



			
				sergun said:
			
		

> What will do installation if I will just mount partitions (not press 't' on each of them)?


It should install an 8.0-RELEASE base system.
I don't think it will harm your ports, but you'll still need to install misc/compat7x and eventually it's better you reinstall them.
However it will install new configuration files. So if you made any customizations since you installed 7.2, make sure you remember what.


----------



## sergun (Dec 26, 2009)

I think rebuilding my ports can solve the issue with compatibility:
portupgrade -af
Am I right?

But I (and you?) am not sure that keeping partitions while re-installation will keep all ports installed..

Probably I will re-install 8.0 completely.

I'm very wondered that so simple case like partition space has killed the FreeBSD server. I spoke to my collegues who professionaly use Linux, they have said that never meet such behavior and it is very strange.



			
				Beastie said:
			
		

> Completely, yes (at least theoretically). newfs(8) creates a new filesystem.
> 
> 
> It should install an 8.0-RELEASE base system.
> ...


----------



## Beastie (Dec 26, 2009)

Ports should not be touched by the setup.

But upgrading ports requires refetching all sources and patches and recompiling everything, so it's not that different from reinstalling everything when it comes to Internet bandwidth or build time.

An interrupted installation can mess up your setup if something goes terribly wrong or if there's not enough space for the files being installed. It's a very logical outcome and can always happen when you're not careful.
You never said how big your partitions are (especially root).


----------

