Server hang : fsck

Polytropon freebsd at
Thu Jan 9 12:15:42 UTC 2014

On Thu, 9 Jan 2014 17:03:51 +0530, eras mus wrote:
> dear List
> I have attached the snapshots of fsck.

This list does not allow attachments. You should either copy
the printed text into the message or upload images somewhere
and provide an URL.

> Whether  fsck is fixing the errors of   /usr. Or just sitting in infinite
> loop?

Transfering your system to a new disk aside - THAT is the REALLY
STRANGE question here! The fsck program does not simply hang in
infinite loops. This indicates a severe problem probably with
your hardware, and that has not neccessarily to be the disk.

You should really try step by step, in _small_ steps. Can you
boot the system from a live CD? If yes, do that. Then check
each file system separately:

	# fsck -yfv /dev/ad4s1a
	# fsck -yfv /dev/ad4s1d
	# fsck -yfv /dev/ad4s1e
	# fsck -yfv /dev/ad4s1f
	# fsck -yfv /dev/ad4s1g

and so on. If it helps, try that with ACPI disabled again. There
is no real use in trying to copy a possibly damaged file system
to a new disk. Before you copy, make sure they're all consistent.

By the way, in addition to the mentioned ways to copy an OS and
and data, there's still the "old school" toolset that can be used:
First initialize the disks (for example with gpart, use MBR only
if you need to, otherwise go with GPT). Then format the new
partitions (newfs) and install the boot blocks (or boot partition
for GPT). Additionally make sure to apply labels to the file
systems (so you don't have to mess with device names in the
future). Finally, use ye olden dump and restore.

Here's an example. Let's assume /dev/ad4 is your designated new
disk, /dev/ad6 your current disk (failing, will be abandoned).
The target disk has been partitioned with GPT, the file systems
have been initialized already. The source disk is _not_ mounted.

	# mount /dev/ad4p2 /mnt
	# cd /mnt
	# dump -0 -L -a -u -f - /dev/ad6s1a | restore -r -f -

	# mount /dev/ad4p3 /mnt/tmp
	# cd /mnt/tmp
	# dump -0 -L -a -u -f - /dev/ad6s1d | restore -r -f -

	# mount /dev/ad4p4 /mnt/var
	# cd /mnt/var
	# dump -0 -L -a -u -f - /dev/ad6s1e | restore -r -f -

	# mount /dev/ad4p5 /mnt/usr
	# cd /mnt/usr
	# dump -0 -L -a -u -f - /dev/ad6s1f | restore -r -f -

	# mount /dev/ad4p6 /mnt/home
	# cd /mnt/home
	# dump -0 -L -a -u -f - /dev/ad6s1g | restore -r -f -

	# cd /
	# umount /mnt
In this example, /mnt will be the subtree that later on becomes /.
Of course you have to check which things apply to _your_ setup!

Note that you can also do that easily from a live CD. Note that
for this task, only the destination media has to be mounted, the
source media usually not. By using this approach, you can make
sure that all file attributes get transferred correctly.

You can find further inspiration around here:

Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...

More information about the freebsd-questions mailing list