Date: Wed, 7 Jan 2009 16:18:46 -0500 From: "Grant Peel" <gpeel@thenetnow.com> To: "Jerry McAllister" <jerrymc@msu.edu> Cc: FreeBSD Questions List <freebsd-questions@freebsd.org> Subject: Re: Replace SCSI Drive Message-ID: <800CBDC693BE4791BC3A2DBC8A044660@GRANTPC> References: <9F57CF00DDE541E69F500E26B652DDED@GRANTPC> <20090107205826.GA93439@gizmo.acns.msu.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
Jerry, Thanks a Tera for the concise reply. Please see the answers below. ----- Original Message ----- From: "Jerry McAllister" <jerrymc@msu.edu> To: "Grant Peel" <gpeel@thenetnow.com> Cc: "FreeBSD Questions List" <freebsd-questions@freebsd.org> Sent: Wednesday, January 07, 2009 3:58 PM Subject: Re: Replace SCSI Drive > On Wed, Jan 07, 2009 at 01:31:25PM -0500, Grant Peel wrote: > >> Hi all, >> >> I currently have a SCSI drive that *may* be going bad on one of my >> production servers. I have lots of backups :-) >> >> Scenario: >> >> The drive that is showing the occasion error, is a 76 GB Seagate SCSI 10K >> spin drive. It is at the network center about 120 miles away. This drive >> is not using anywhere near 76 GB, and the server will never need 76 GB. I >> estimate its using about 20 GB now. >> >> I am at home, and have a barely used 36 GB Seagate 10K SCSI drive here, >> currently hooked up to my home (Windows XP BOX) via an Initio SCSI >> adaptor. >> >> What I would like to do is: >> >> Using my windows box, FDISK and set up the disk slices at home, using >> some kind of FreeBSD boot disk. I will of course, make sure there is >> enough room on each file system to accomodate the data from the other >> (going bad) disk. >> >> Take the pristine disk to the Network Center, >> >> Shut down all software on the machine that has the bad disk, and make >> full dumps of all filesystems on that machine (/, /var, /home, /usr) and >> move the over to the new formatted drive. >> >> Since I have never done this before, I have some questions: >> >> !. Can I use a FreeBSD bootable installation disk (6.4) made from an ISO >> image, to boot my PC and make the filesystems on the 36GB drive, without >> actually installing FreeBSD? (Please feel free to tell me exactly how >> :-)). >> >> 2. Once I get that drive to the network center, and restore the dumps to >> it, how do I ensure the drive is bootable? (I assume I actually do that >> in the previous step). >> >> 3. Is it possible to skip step one altogether and use the instructions in >> the man pages regarding "Restoring a filesystem" and makeing the >> 'Pristine' filesystem? If so, again, how do I ensure the disk is >> bootable? >> >> Thanks a billion in advance, > > > > I have a few questions. > > First, it sounds like this is the boot disk and is the only disk on > the machine. Is this true? If it is not the boot disk, then it > is very easy. If it is the boot disk, then it is still easy, but > just a little more work. This is the only drive on the machine, and it is (obviously) the boot disk. > > Second, since you have to take the replacement disk to the Network Center > and do the dumps and restores there anyway, why bother doing the fdisk, > bsdlabel and newfs remotely? I can do either (do it at home, or at the network center). I should mention now, the servers are Dell servers and have a DRAC card, so I can access remotely. > That is the easy and quickest part anyway. > So, just do it there. Oh, can you get a console on the machine? I > presume > so if you were going to do the dump/restore there. Yes as mentioned, I have a DRAC card for remote access, and I have SSH (Putty) access as root. Also, I should mention I have an NFS mount to keep the dumps on (on another machine). > > So, presuming some things: > 1. It is the only disk and is the boot disk. FreeBSD is the only thing > you want on the disk no > dual boot. Correct, > 3. You can get a console on the machine at the Network Center. Correct, > 4. You can successfully burn and test a boot CD with the fixit image. > It used to be that the fixit was included on disc 1, but in case it > has moved, check out its location. Might still be there. Just find > a spare machine - even one running MS and boot the CD and select > the fixit image. If it comes up, then just pull it and reboot. You > don't have to bring it all the way up just to test if it is there. Although I have heard of the Fixit console, I have never used it. I have several CDs I have burned using the distribution ISO image, Including the version I am running on the hurting machine. Can you elaborate further on how to bring up the Fixit console with the CD? > > Make sure the fixit comes from the same version as the one you are > restoring to the system or you could have a problem, though probably > not if they are all 6.x or 7.x. > > Some of them talk about a holographic image. I never understood > what that was supposed to mean. I sort of expected to see a full > 3D image of BSDie to materialize in my office and, possibly in > Kirk McKusick's voice, tell me how to do whatever it is. But, that's > never happened. Not enough drugs, I suppose. > > Anyway, take your CD with fixit and the one you can run sysinstall from, > just > in case and trundle on over to where that machine resides. > > Shut down the machine. > > Pull out the old disk and slide it in to the #2 SCSI slot (or leave it out > until the dump/restore phase if you get nervous). > Put the replacement disk in to the #1 (boot) SCSI slot. > > Plug in the monitor and keyboard. > > Pop in the CD with the fixit and boot up. > > Fixit runs from an image in memory, not from a hard disk, but, unless > you look at devices, it looks like it is running just like you are > used to. Maybe that's what they mean by holographic??? The important > thing about this is that the devices are different and any file you > create in the mounted root will disappear when you reboot. You may > need to think out just where you are doing something. > > If it is a SCSI disk, the replacement disk should not be /dev/da0 > If you do a df(1) you should see the memory device for / > > Do the following: (You may need to stick in a dd before the fdisk and > bsdlabel if it already has an incompatible label on > the disk or maybe none at all, but probably not) > > # (dd if=/dev/zero of=/dev/da0 bs=512 count=4096) only if needed > # fdisk -BI da0 > # (dd if=/dev/zero of=/dev/da0s1 bs=512 count=4096) only if needed > # bsdlabel -w -B da0s1 > # bsdlabel -e da0s1 You may have lost me here. I have used dd to clone disks before, but only identical size disks. Are you suggesting I dd and 73 GB disk to a 36 GB disk? Will that work? > > The fdisk makes it an all FreeBSD bootable single slice with default MBR. > The first bsdlabel writes an initial label in that slice and puts > in the boot block. > The second bsdlabel brings up an edit session with the information for > partitioning that single FreeBSD slice. It will show one c partition > which identifies the whole size of the slice. Leave that c partition > alone. But, you can copy it to make the others and just muck with > the numbers onb them. Looks like you want partitions for / /var /home > /usr. > You should also make one for swap and /tmp. So, a=/, b=swap, d=/tmp, > e=/usr, f=/var and g=/home. Actually, make the letter names for the > partitions match what you have now. > > You will first see something that looks something like: > (The exact number will reflect the actual disk slice size) > Remember, it is stated in 512 byte blocks (or sectors, same thing) > > > 8 partitions: > # size offset fstype [fsize bsize bps/cpg] > c: 75497472 0 unused 0 0 # "raw" part, don't > edit > > > To make the disk partitions be: > (I am just guessing on sizes /=256MB, > based on a machine I have swap=1024MB, > with a similar sized disk, /tmp=512MB, > but if they are like this, /usr=4096MB (eg 4 GB), > then /var=4096MB (eg 4 GB) and > /home gets all the rest > > You might want to become root and then run: bsdlabel -e da0 > before shutting the machine down just to see what is there, though > the numbers will be different since you are putting in a different > sized disk. Make sure you q! to get out of the bsdlabel and do > not do a write or you could cause yourself some nasty trouble - though > it shouldn't let you actually do the write, I wouldn't want to > test it out accidently. > > You want to edit it to make it look something like: > > 8 partitions: > # size offset fstype [fsize bsize bps/cpg] > a: 524288 0 4.2BSD 2048 16384 32776 > b: 2097152 * swap > c: 75497472 0 unused 0 0 # "raw" part, don't > edit > d: 1048576 * 4.2BSD 2048 16384 8 > e: 8388608 * 4.2BSD 2048 16384 28552 > f: 8388608 * 4.2BSD 2048 16384 28552 > g: * * 4.2BSD 2048 16384 28552 > > By using the '*' for offset, bsdlabel will calculate it correctly. > By using '*' for size on the last partition (g in this case), bsdlabel > will put all the rest of the usable space in that partition. But, the > first offset needs to be specified as '0' and c must be left alone. > > When you write and exit the edit session, bsdlabel will write the > partition table to the slice and it is now completely labeled. > > Finally you want to newfs each partition. Taking the defaults > should be just fine, but remember, you have to use the full device > name on the newfs command, not shortened as in fdisk and bsdlabel. > (Note, do not newfs the swap partition or the 'c' partition) > > newfs /dev/da0s1a > newfs /dev/da0s1d > newfs /dev/da0s1e > newfs /dev/da0s1f > newfs /dev/da0s1g > > Now the disk is ready to write. You must make mount points and mount > the partitions. > > mkdir /oldroot > mkdir /newroot > mkdir /oldusr > mkdir /newusr > mkdir /oldvar > mkdir /newvar > mkdir /oldhome > mkdir /newhome > > (unless you have been doint something foolish, you don't have to > dump/restore anything from /tmp) > > Presuming you put that old disk in the second SCSI slot, which > would make it /dev/da1 (and presuming my speculative partition > assignments are what you used - use what you really have) > > mount /dev/da0s1a /newroot > mount /dev/da1s1a /oldroot > mount /dev/da0s1e /newusr > mount /dev/da1s1e /oldusr > mount /dev/da0s1f /newvar > mount /dev/da1s1f /oldvar > mount /dev/da0s1g /newhome > mount /dev/da1s1g /oldhome > > Then do the dump/restores from the old disk to the new. > > cd /newroot > dump 0af - /oldroot | restore -rf - > cd /newusr > dump 0af - /oldusr | restore -rf - > cd /newvar > dump 0af - /oldvar | restore -rf - > cd /newhome > dump 0af - /oldhome | restore -rf - > > At this point, remove the CD and reboot and it should work just fine. > Your old disk will still be there if you want to look at it for anything, > but everything should be on the new one. Note: remember those mount > points you created for the dumps will be gone after the reboot, because > they are created in that memory file system of the fixit. So, if you > want to mount something from the old disk, you will need to make the > mount points again. > > It looks like a lot of stuff, but it actually goes pretty quickly > until you get to the dump/restores. The big ones can take a while. > > Have fun, > > ////jerry Jerry McAllister jerrymc@msu.edu > > >> -Grant. >> >> P.S. I AM reading all the manuals and handbooks, I just can't afford to >> mess this up :-) >> >> _______________________________________________ >> 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" >> > >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?800CBDC693BE4791BC3A2DBC8A044660>