Date: Sat, 4 Oct 2003 17:56:07 -0400 (EDT) From: Jerry McAllister <jerrymc@clunix.cl.msu.edu> To: ajacoutot@lphp.org (Antoine Jacoutot) Cc: freebsd-questions@freebsd.org Subject: Re: formatting hardrive Message-ID: <200310042156.h94Lu8xV027324@clunix.cl.msu.edu> In-Reply-To: <200310041427.57990.ajacoutot@lphp.org> from "Antoine Jacoutot" at Oct 04, 2003 02:27:56 PM
next in thread | previous in thread | raw e-mail | index | archive | help
> > Hi ! > > Ok, I'm at a point where I'm ready to cry :( > Is there ANY easy way to partition/slice a hardrive for FreeBSD ????? > I spent all morning playing with bsdlabel, sysinstall... I just want to > partition a second hardrive so I could dump/restore the content of my first > drive. > So, I tried sysinstall post-install tools to create the slices and all, but > all I get are errors like "can't write to ad2", or "can't mount /dev/ad2s1a > on /mnt" .... > Basically what I want is: > ad2s1a --> /mnt > ad2s1b --> SWAP > ad2s1d --> /mnt/tmp > ad2s1e --> /mnt/var > ad2s1f --> /mnt/usr > > So, all I have to do after is dump / --> /mnt, /tmp --> /mnt/tmp ... and so > on. > I sware I tried all morning without any kind of success :( > > I would really appreciate some help. Well, although /stand/sysinstall would do it OK, it might be just as easy to use fdisk and disklabel directly. I don't know anything about 'bsdlabel'. So, presuming your extra disk is really /dev/ad2 (are there ad0 and ad1?) do the following. fdisk -BI ad2 (makes one big slice on the disk) disklabel -w -r da0s1 auto (writes an initial label for slice 1) disklabel -r -e da0s1 (now edit the label to make the partitions) this will bring up the label for slice1 in an editor - vi unless you specify another one. Edit the partition table as needed. Make it something like this only with the sizes you need. You didn't mention sizes so this example is for a nominal 18GB drive with 512 MB for a: /mnt, 1GB for b: swap, 512 MB for e: /mnt/tmp, 1 GB for f: /mnt/var and all the rest for g: /mnt/usr NOTES: - The size is specified in number of 512 byte blocks - Recent versions of disklabel (at least since 4.6.2 FreeBSD) allow you to put a * for offset and it calculates it for you - and a * for size in the last partition specified tells it to use all rest of the slice for that partition. By convention, partition b: is used for swap, c: is a comment used to specify the whole slice and d: is not used for regular file systems. - Don't change the header stuff, just the partition size stuff. 8 partitions: # size offset fstype [fsize bsize bps/cpg] a: 1048576 0 4.2BSD 1024 8192 22 # b: 2097152 * swap 1024 8192 22 # c: 35551782 0 unused 0 0 # e: 1048576 * 4.2BSD 1024 8192 22 # f: 2097152 * swap 1024 8192 22 # g: * * 4.2BSD 2048 16384 89 # When you :wq out of the edit session, it will write the label. Now, you have to newfs each of the partitions except for swap. Probably just take the defaults for newfs. newfs /dev/ad2s1a newfs /dev/ad2s1e newfs /dev/ad2s1f newfs /dev/ad2s1g Now mount partition a on /mnt so you can make the mount points for the rest of the partitions. (By the way, I would suggest making up a different mount point than /mnt because there are some other things like to mess with that so you might make up something like /dmp by doing mkdir /dmp, then replace /mnt with /dmp in all these commands) mount /dev/ad2s1a /mnt (or mount /dev/ad2s1a /dmp) cd /mnt (or cd /dmp) mkdir tmp mkdir var mkdir usr Now edit fstab to add the following entries # Disk ad2 /dev/ad2s1a /mnt ufs rw 2 2 /dev/ad2s1b none swap rw 0 0 /dev/ad2s1e /mnt/tmp ufs rw 2 2 /dev/ad2s1f /mnt/var ufs rw 2 2 /dev/ad2s1g /mnt/usr ufs rw 2 2 Alternatatively, if you use /dmp for a mount point it would look like: # Disk ad2 /dev/ad2s1a /dmp ufs rw 2 2 /dev/ad2s1b none swap rw 0 0 /dev/ad2s1e /dmp/tmp ufs rw 2 2 /dev/ad2s1f /dmp/var ufs rw 2 2 /dev/ad2s1g /dmp/usr ufs rw 2 2 Now, just mount everything. In the future it will all be mounted at boot time. mount -a And you are done. By the way. Don't try to dump to the mounted directory. eg DO NOT dump -0f /dmp/var /var Instead, you must name a file in the directory. dump -0f /dmp/var/var.backup /var Given this, I don't see why you really want to make all those partions in the slice. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Just make the slice with fdisk as I described and then use disklabel to create just one large partition to hold the dump files. So, the disklabel partition table would look something like: 8 partitions: # size offset fstype [fsize bsize bps/cpg] b: 2097152 0 swap 1024 8192 22 # c: 35551782 0 unused 0 0 # e: * * 4.2BSD 2048 16384 89 # Then you would only need to create the /dmp mount point: mkdir /dmp Add to /etc/fstab the following: # Disk ad2 /dev/ad2s1b none swap rw 0 0 /dev/ad2s1e /dmp ufs rw 2 2 Mount it with: mount -a and do dumps to files /dmp/root.backup (eg: dump -0f /dmp/root.backup /) /dmp/tmp.backup (eg: dump -0f /dmp/tmp.backup /tmp) /dmp/var.backup (eg: dump -0f /dmp/var.backup /var) /dmp/usr.backup (eg: dump -0f /usr/var.backup /usr) That way you don't have to outguess how big each separate partition for each dump needs to be. Also, it is very unusual to back up /tmp since it is supposed to be only temporary, sort of scratch space. But, that is up to you. ////jerry > > Thanks in advance. > > -- > Antoine Jacoutot > ajacoutot@lphp.org > http://www.lphp.org > PGP/GnuPG key: http://www.lphp.org/ressources/ajacoutot.asc >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200310042156.h94Lu8xV027324>