From owner-freebsd-questions@FreeBSD.ORG Fri Nov 13 22:21:23 2009 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A9037106566C for ; Fri, 13 Nov 2009 22:21:23 +0000 (UTC) (envelope-from jerrymc@gizmo.acns.msu.edu) Received: from gizmo.acns.msu.edu (gizmo.acns.msu.edu [35.8.1.43]) by mx1.freebsd.org (Postfix) with ESMTP id 92BF18FC0A for ; Fri, 13 Nov 2009 22:21:22 +0000 (UTC) Received: from gizmo.acns.msu.edu (localhost [127.0.0.1]) by gizmo.acns.msu.edu (8.13.6/8.13.6) with ESMTP id nADMC7wC027791; Fri, 13 Nov 2009 17:12:07 -0500 (EST) (envelope-from jerrymc@gizmo.acns.msu.edu) Received: (from jerrymc@localhost) by gizmo.acns.msu.edu (8.13.6/8.13.6/Submit) id nADMC7uL027790; Fri, 13 Nov 2009 17:12:07 -0500 (EST) (envelope-from jerrymc) Date: Fri, 13 Nov 2009 17:12:06 -0500 From: Jerry McAllister To: Roger Message-ID: <20091113221206.GA27314@gizmo.acns.msu.edu> References: <9d972bed0911131228k36f9515ak361d82d766c24749@mail.gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <9d972bed0911131228k36f9515ak361d82d766c24749@mail.gmail.com> User-Agent: Mutt/1.4.2.2i Cc: freebsd-questions@freebsd.org Subject: Re: Remote re-installation of current FreeBSD system. X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 Nov 2009 22:21:23 -0000 On Fri, Nov 13, 2009 at 03:28:04PM -0500, Roger wrote: > Hello all, > > I'm in control of a dedicated server and I would like to re-install FreeBSD. > I found the following guide: > http://www.freebsd.org/doc/en/articles/remote-install/ > which seems to cover pretty much all should need but it assumes that > I have some other OS (linux) installed, since I have FreeBSD 7.2-p4 I wonder > if maybe there is an easier way. Well, you say a dedicated server, but you do not say it is remote. The article is for a remote install - that is, one where you cannot put your hands on the actual machine. The article also assumes you are making a raid with gmirror. With just one drive, you can ignore that stuff. If it is really a remote machine, then you will have to go through that stuff about building an mfs and running from it. But, not if you have direct access to the machine. If you can get to it and shut it down and put CDs in it, the process is much more simple. In that case you just do good backups and check them out to make sure they are readable, put the install CD in and boot the machine. That will bring up Sysinstall which will do everything for the main install. Then you will probably want to csup(1) both the base system and the ports tree and rebuild the base according to the handbook. Then install your ports. Finally restore your backups. Or, if you are completely happy with what is currently on the machine and you just want to reorder the partition sizes, then you don't even have to really do any install. Just do the backups, use the 'fixit' disk to run bsdlabel to make the partitions. Newfs(8) the new partitions. Then restore the backups over the top of things. > The reason for wanting to re-install is because I only have on big > slice that covers the > entire harddrive and I don't want that. Primarily I would like to have > /usr/local > in a separate slice. Really in a separate slice?? Or do you mean a separate partition. It is possible that you used only a slice and no partitions, but it is not the usual thing. That is kind of halfway to what they call a 'dangerously dedicated' disk in the handbook. Maybe you could call it a dangerously dedicates slice. It isn't really dangerous, but it limits some things you can do and for the disk, makes it so some types of things (that you most likely would never run in to) could not access it. So, Remember, in FreeBSD slices are the primary divisions (identified as 1..4) of the disk and partitions (identified as a..h) are subdivisions of slices. Presuming you are using SATA or IDE disk, the drive is ad0, or if you are using SCSI or SAS disk, the drive is da0. The first single slice is either ad0s1 (or da0s1 for SCSI) thus the 's' in 's1'. Then in s1 you can have partitions a..h except c is reserved, b is best used for swap and a needs to be root. If you have a single slice and no partition, then you would be mounting all of /dev/ad0s1 as /. If you have partitions, then you would be mounting /dev/ad0s1a as /. In any case, it is easy to modify. The only reason you might want a separate second slice on a machine that is only running one version of FreeBSD is if you have used up all the partitions available in slice 1. Do a df -k to see what slices and partitions are in use. If you have partitions use bsdlabel to look at the label in more detail. From root, do: bsdlabel ad0s1 (or da0s1 for SCSI or SAS) Think about how you want the disk divided before you get into the middle of it. If the new /usr/local partition would be too big to fit in the new /usr partition along with the regular /usr stuff, then you will have to split them up before doing the backups. In that case, use tar(1) to make a file that contains all of /usr/local, then rm(1) the contents of /usr/local, then do the backups and go from there - use the bsdlabel from the fixit to rebuild the partitions (and newfs each of them), restore everything over the top, mount that new /usr/local (make sure you still have a /usr/local mount point and that you fix up /etc/fstab for it) and untar that ball you make of /usr/local. If there is plenty of room for it to be in the new /usr temporarily, then just do the backups and then use bsdlabel from the fixit to rebuild the partitions, newfs them and restore them from backups. Then rename the current /usr/local to get it out of the way, remake the /usr/local mountpoint, mount it and then use tar to copy everything from the old /usr/local to the new one. Check it out and then rm the old /usr/local. Again, presuming you have direct access to the machine, Make your backups and put them somewhere away from what you are doing - on tape, or a big USB drive or another machine's disk, etc. I vote for a big cheap USB drive if your machine supports it. Once you have readable backup -- and that /usr/local split out in a separate tar file, if it would be too big, then put in the CD with the fixit. There is a menu item to select that boot. It used to be on CD-1, but you may need to check that in case they moved it. Just put in the CD and boot and see what you get. Select the option and if it gives you a prompt, then you are running from it. It won't hurt your disk at that stage. If you really just have a single slice and no partitions, then your mounts in fstab would be just: /dev/ad0s1 / If you do not have a partition, but are running directly from a slice, eg have an unlabeled slice, then do the following. dd if=/dev/zero of=/dev/da0s1 bs=512 count=1024 bsdlabel -w -B ad0s1 bsdlabel -e ad0s1 That will clean up a little, start an initial label on the slice and then put you in to an edit screen. It will look something like: # /dev/ad0s3: 8 partitions: # size offset fstype [fsize bsize bps/cpg] c: 89867610 0 unused 0 0 # "raw" part, don't edit Edit that file so you have partitions you want Do NOT modify the c: line then write and exit. In vi, that would, of course, be ESC:wq that will write the label to the slice on the disk. If you already have partitions - eg there was an ad0s1a mounted to / Then skip the dd and the first bsdlabel and just do: bsdlabel -e ad0s1 You will get the partition edit screen about the same as before but it will have the current partitions in it, something like: # /dev/ad0s3: 8 partitions: # size offset fstype [fsize bsize bps/cpg] a: 786432 0 4.2BSD 2048 16384 49160 b: 2572288 786432 swap c: 89867610 0 unused 0 0 # "raw" part, don't edit d: 1048576 3358720 4.2BSD 2048 16384 8 e: 6291456 4407296 4.2BSD 2048 16384 28552 f: 6291456 10698752 4.2BSD 2048 16384 28552 g: 72877402 16990208 4.2BSD 2048 16384 28552 NOTE: All these sizes and offsets are given in blocks of 512 bytes. You will need to modify these to make room for your /usr/local Do NOT modify the c: line One advantage of the new bsdlabel is that it will calculate offsets and the final partition for you - just put a '*' in the field. Note: On the disk above these partitions are currently mounted as: a: / b: swap d: /tmp e: /usr f: /var g: /home So, to squeeze in a partition for /usr/local you might do this: I will make it 2 GB in partition g: and that makes /home go to h: # /dev/ad0s3: 8 partitions: # size offset fstype [fsize bsize bps/cpg] a: 786432 0 4.2BSD 2048 16384 49160 b: 2572288 * swap c: 89867610 0 unused 0 0 # "raw" part, don't edit d: 1048576 * 4.2BSD 2048 16384 8 e: 6291456 * 4.2BSD 2048 16384 28552 f: 6291456 * 4.2BSD 2048 16384 28552 g: 4194304 * 4.2BSD 2048 16384 28552 h: * * 4.2BSD 2048 16384 28552 This way, bsdlabel will calculate the offsets correctly and put all available remaining space in the last (h:) partition. Now my mounts (in fstab) would need to be: a: / b: swap d: /tmp e: /usr f: /var g: /usr/local h: /home You can divide this up however you want. You could put just the swap (you really should have a good amount of swap) and your /usr/local separately and all the rest in partition a: if you want. Then you would only have partitions a:, b: and d: To mount as: a: / b: swap d: /usr/local eg, following rebuilding the partitions, including creating the new /usr/local partition and restoring the backups, do the following. cd /usr mv local oldlocal mkdir local mount /dev/ad0s1g /usr/local (I just pulled a partition 'g' out of the air. Use what you actually make it) cd /usr/oldlocal tar cvpf /usr/local/loc.tar cd /usr/local tar xvpf loc.tar Now, check it out and make sure files in the new /usr/local are good cd /usr rm -rf oldlocal cd /usr/local rm loc.tar Then you should be good to go. > > Any input, advice, tips etc would be very welcomed. > (trying to be prepared before attempting anything) The main thing is to do backups that are stored on media off the unit you are modifying. Use dump(8) and restore(8). ////jerry > > Thank you, > -r > _______________________________________________ > freebsd-questions@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-questions > To unsubscribe, send any mail to "freebsd-questions-unsubscribe@freebsd.org"