[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: split root logical volume to var tmp home etc



In <[🔎] 20090609211030.GA30776@m364d1.ece.northwestern.edu>, Zhengquan Zhang 
wrote:
>On Mon, Jun 08, 2009 at 04:01:41PM -0500, Boyd Stephen Smith Jr. wrote:
>> (0. [LVM specific] Create the new logical volume(s).)
>> 1. Create new file system(s) on the block devices. [LVM: logical
>> volumes]
>> 2. Remount the original file system read-only.
>> 3. Mount the new file system somewhere temporary.
>> 4. Copy the data across.
>> 5. Unmount the new file system.
>> 6. Mount the new file system in it's permanent location.
>> 7. Remount the old file system read-write.
>> 8. Update /etc/fstab.
>> (Here you may want to reboot to make sure the system will do so without
>> manual intervention, to make sure your changes to the fstab are correct,
>> and to make sure any of the files that have been moved the the new file
>> system are no longer open on the old file system.)
>>
>> 9. Bind mount the old file system somewhere temporary.
>> 10. Remove the data from the old file system via the bind mount.
>> 11. Un- bind mount the old file system.

Note that the numbers above exactly match the numbers below.  Above is 
goals/semantics; below is actions/commands.

>> Example: splitting / into / and /var:
>> 2. mount -o remount,ro /
>> (The above command probably won't work because some things are
>> constantly writing to [e.g.] /var/log.  You might try something like:
>> fuser -mk / && mount -o remount,ro /.  Or, you might just work from a
>> system rescue disk.)
>
>I don't understand this. Why do I need to remount / read only?

Because we are going to make a copy of (part of) it.  If other programs make 
changes during the time it we are making our copy, our copy might be 
inconsistent or out-of-date. Therefore, we can't allow other programs to be 
writing changes until we are done getting our copy.

You will need to make read-only whatever file system is being split.

>> 3. mount /dev/debian/var /mnt
>
>Why do I need to mount the lv to mnt?

This is a temporary location so that you can populate the new file system 
without disturbing the rest of the system.

>> 4. rsync -HaAxX --progress --stats /. /mnt/.
>
>So everything in / will have a copy in /mnt ?

Yes, but it won't descend into file systems mounted below /.  In particular, 
/mnt doesn't contain a copy of /mnt!  (An impossible situation, but that 
doesn't stop a computer from trying if you give it the right directions.)

>and because we have mounted var lv to /mnt. var lv has a copy of
>everything in / ?

Ah, good catch.  The correct command would be:
rsync -HaAxX --progress --stats /var/. /mnt/.

We only want the new lv to contain a copy of /var.

>> 5. umount /mnt
>
>I don't understand this.

Simply removes the new file system from its temporary mount point, since it 
is now ready to be used in its permanent location.

>> 6. mount /dev/debian/var /var
>
>So now var lv is mounted to /var and it now has everything in /var?

Yes.

>> 7. mount -o remount,rw /
>
>Till here I am totally confused..

This makes '/' read-write again.  Note that '/var' was read-write as soon as 
you finished step 6, since it is now a separate file system.  This command 
makes whatever else in is '/' read-write.  For example, /root.

>> 8. echo '/dev/debian/var	/var	ext3	relatime,acl	0	2' >> /etc/fstab
>> (If you want: /sbin/shutdown -r now -t 5.)
>> 9. mount -o bind / /mnt
>> (Okay, so now /etc/fstab and /mnt/etc/fstab are the same file.  However,
>> /var/log/messages is on the new filesystem and /mnt/var/log/messages is
>> on the old file system.)
>> 10. rm -rf /mnt/* /mnt/.[!.]*

This is definitely wrong, and would have made you very unhappy.  The correct 
command is:
rm -rf /mnt/var/* /mnt/var/.[!.]*

This is removing the old version of /var that is part of the old file 
system.  The current version is already on the new file system and in active 
use.

>> 11. umount /mnt
>
>Sorry Boyd I don't quite understand, but thanks for your detailed reply
>and I would greatly appreciate it if you can still help me to understand
>it.

HTH
-- 
Boyd Stephen Smith Jr.           	 ,= ,-_-. =.
bss@iguanasuicide.net            	((_/)o o(\_))
ICQ: 514984 YM/AIM: DaTwinkDaddy 	 `-'(. .)`-'
http://iguanasuicide.net/        	     \_/

Attachment: signature.asc
Description: This is a digitally signed message part.


Reply to: