In <20090609211030.ga30...@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. ,= ,-_-. =. b...@iguanasuicide.net ((_/)o o(\_)) ICQ: 514984 YM/AIM: DaTwinkDaddy `-'(. .)`-' http://iguanasuicide.net/ \_/
signature.asc
Description: This is a digitally signed message part.