迁移Home目录到独立分区

来源:互联网 发布:非农数据什么意思 编辑:程序博客网 时间:2024/05/22 01:46

迁移Home目录到独立分区

一般情况下在安装linux系统建立分区的时候不会给home目录建立单独的分区,而是和”/”根目录在同一分区。从生产实际考虑,我们可能会需要对用户的使用空间做配额管理。但是配额管理只能针对整个分区设定,并不能单独对某个目录设定,此时就需要将home目录迁移到单独的分区上。整个迁移过程大致分为以下几个要点:创建新分区、备份home目录、迁移数据、新分区挂载等

1.创建新分区

新分区可以使用现有磁盘未被使用的空间创建,也可以直接使用新的磁盘创建。本篇文章直接模拟使用新的空闲磁盘创建分区。

[root@Centos6T ~]#lsblk /dev/sdbNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsdb    8:16   0  50G  0 disk[root@Centos6T ~]#fdisk /dev/sdbCommand (m for help): nCommand action   e   extended   p   primary partition (1-4)pPartition number (1-4): 1First cylinder (1-6527, default 1):Using default value 1Last cylinder, +cylinders or +size{K,M,G} (1-6527, default 6527): +30GCommand (m for help): pDisk /dev/sdb: 53.7 GB, 53687091200 bytes255 heads, 63 sectors/track, 6527 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x18305f22   Device Boot      Start         End      Blocks   Id  System/dev/sdb1               1        3917    31463271   83  LinuxCommand (m for help): wThe partition table has been altered!Calling ioctl() to re-read partition table.Syncing disks.

查看分区基本信息

[root@Centos6T ~]#lsblkNAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTsr0     11:0    1  3.7G  0 rom  /media/CentOS_6.9_Finalsda      8:0    0  200G  0 disk├─sda1   8:1    0    1G  0 part /boot├─sda2   8:2    0   50G  0 part /├─sda3   8:3    0   40G  0 part /app├─sda4   8:4    0    1K  0 part└─sda5   8:5    0    2G  0 part [SWAP]sdb      8:16   0   50G  0 disk└─sdb1   8:17   0   30G  0 part

2.创建文件系统并挂载新分区

迁移home目录需要将数据都宝贝到新分区,但是分区创建完成后暂时还不能使用,还需要给新的分区创建文件系统并临时挂载到一个临时的目录一遍想将home目录的数据全部拷贝过来。

创建ext4文件系统

root@Centos6T ~]#mkfs.ext4 /dev/sdb1mke2fs 1.41.12 (17-May-2010)Filesystem label=OS type: LinuxBlock size=4096 (log=2)Fragment size=4096 (log=2)Stride=0 blocks, Stripe width=0 blocks1966560 inodes, 7865817 blocks393290 blocks (5.00%) reserved for the super userFirst data block=0Maximum filesystem blocks=4294967296241 block groups32768 blocks per group, 32768 fragments per group8160 inodes per groupSuperblock backups stored on blocks:    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,    4096000Writing inode tables: doneCreating journal (32768 blocks): doneWriting superblocks and filesystem accounting information: doneThis filesystem will be automatically checked every 36 mounts or180 days, whichever comes first.  Use tune2fs -c or -i to override.[root@Centos6T ~]#lsblk -f /dev/sdb1NAME FSTYPE LABEL UUID                                 MOUNTPOINTsdb1 ext4         ec3f26a9-9009-4016-adb4-58b81a8ae03a

创建临时目录并将分区挂载上去

[root@Centos6T ~]#mkdir /mnt/sdb1[root@Centos6T ~]#mount /dev/sdb1 /mnt/sdb1/[root@Centos6T ~]#df -TFilesystem     Type    1K-blocks    Used Available Use% Mounted on/dev/sda2      ext4     51475068 4543540  44310088  10% /tmpfs          tmpfs      502056      76    501980   1% /dev/shm/dev/sda3      ext4     41153856   49068  39007636   1% /app/dev/sda1      ext4       999320   35008    911884   4% /boot/dev/sr0       iso9660   3878870 3878870         0 100% /media/CentOS_6.9_Final/dev/sdb1      ext4     30838496   44992  29220344   1% /mnt/sdb1

新的分区挂载成功,我们可以通过/mnt/sdb1路径进入/dev/sdb1执行操作

3.拷贝原home目录所有数据至新分区

将原home目录数据拷贝至新的分区需要保留所有数据及其元数据,可以使用cp -a命令。

[root@Centos6T ~]#cp -av /home/* /mnt/sdb1/......`/home/geoffrey' -> `/mnt/sdb1/geoffrey'`/home/geoffrey/Desktop' -> `/mnt/sdb1/geoffrey/Desktop'`/home/geoffrey/Desktop/importantfile.tar.gz' -> `/mnt/sdb1/geoffrey/Desktop/importantfile.tar.gz'`/home/geoffrey/.pulse' -> `/mnt/sdb1/geoffrey/.pulse'`/home/geoffrey/.gvfs' -> `/mnt/sdb1/geoffrey/.gvfs'`/home/geoffrey/.mozilla' -> `/mnt/sdb1/geoffrey/.mozilla'`/home/geoffrey/.mozilla/plugins' -> `/mnt/sdb1/geoffrey/.mozilla/plugins'`/home/geoffrey/.mozilla/extensions' -> `/mnt/sdb1/geoffrey/.mozilla/extensions'`/home/geoffrey/.esd_auth' -> `/mnt/sdb1/geoffrey/.esd_auth'`/home/geoffrey/.local' -> `/mnt/sdb1/geoffrey/.local'......[root@Centos6T ~]#ll /home/geoffrey/Desktop/importantfile.tar.gz-rw-rw-r--. 1 geoffrey geoffrey 524288000 Aug 12 03:50 /home/geoffrey/Desktop/importantfile.tar.gz[root@Centos6T ~]#ll /mnt/sdb1/geoffrey/Desktop/importantfile.tar.gz-rw-rw-r--. 1 geoffrey geoffrey 524288000 Aug 12 03:50 /mnt/sdb1/geoffrey/Desktop/importantfile.tar.gz

数据拷贝完成,迁移的前期准备工作也就完成了,下面开始开始实际迁移工作

4.Home目录切换

切换home目录需要停止用户对各自账户数据的访问,在执行操作前我们需要用linux的广播功能通知所有用户保存数据下线;同时为了防止我们在切换目录过程有用户重新访问数据,我们需要在单用户模式下执行全部操作。

[root@Centos6T ~]#wall "Atention:system will be shutdown at 21:00,plaese save your work and logout ASAP"Broadcast message from root@Centos6.magedu.com (pts/0) (Sat Aug 12 04:15:10 2017):Atention:system will be shutdown at 21:00,plaese save your work and logout ASAP[root@Centos6T ~]#init 1[root@Centos6T /]#tar -cvf /app/home.tar /home[root@Centos6T /]#ll /app/home.tar-rw-r--r--. 1 root root 524503040 Aug 12 04:17 /app/home.tar[root@Centos6T /]#rm -rf /home/*[root@Centos6T /]#mount /dev/sdb1 /home/[root@Centos6T /]#umount /mnt/sdb1/[root@Centos6T /]#df -TFilesystem     Type    1K-blocks    Used Available Use% Mounted on/dev/sda2      ext4     51475068 4542788  44310840  10% /tmpfs          tmpfs      502056      76    501980   1% /dev/shm/dev/sda3      ext4     41153856  561284  38495420   2% /app/dev/sda1      ext4       999320   35008    911884   4% /boot/dev/sr0       iso9660   3878870 3878870         0 100% /media/CentOS_6.9_Final/dev/sdb1      ext4     30838496  557520  28707816   2% /home

将新分区挂载到/home目录下后,还需要将分区及挂载点信息写入/etc/fstab文件,否则下次重新启动时新分区将不会自动挂载,导致用户无法访问原有数据甚至服务器无法启动。

[root@Centos6T /]#blkid/dev/sda1: UUID="3b7c45c5-c25e-4f8f-bd39-d9c45a2c2dd0" TYPE="ext4"/dev/sda2: UUID="b35dae79-e628-4d15-b76e-5ff02638dd26" TYPE="ext4"/dev/sda3: UUID="f45e646c-c014-439f-8d9e-900c97340238" TYPE="ext4"/dev/sda5: UUID="f28bd2d0-d322-4be8-b0ee-99fdcb5603aa" TYPE="swap"/dev/sdb1: UUID="ec3f26a9-9009-4016-adb4-58b81a8ae03a" TYPE="ext4"[root@Centos6T /]#cat /etc/fstab## /etc/fstab# Created by anaconda on Fri Jul 14 10:38:30 2017## Accessible filesystems, by reference, are maintained under '/dev/disk'# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info#UUID=b35dae79-e628-4d15-b76e-5ff02638dd26 /                       ext4    defaults        1 1UUID=f45e646c-c014-439f-8d9e-900c97340238 /app                    ext4    defaults        1 2UUID=3b7c45c5-c25e-4f8f-bd39-d9c45a2c2dd0 /boot                   ext4    defaults        1 2UUID=f28bd2d0-d322-4be8-b0ee-99fdcb5603aa swap                    swap    defaults        0 0[root@Centos6T /]#echo "UUID=ec3f26a9-9009-4016-adb4-58b81a8ae03a /home       ext4   usrquota,grpquota,defaults 0 0" >> /etc/fstab[root@Centos6T /]#cat /etc/fstab## /etc/fstab# Created by anaconda on Fri Jul 14 10:38:30 2017## Accessible filesystems, by reference, are maintained under '/dev/disk'# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info#UUID=b35dae79-e628-4d15-b76e-5ff02638dd26 /                       ext4    defaults        1 1UUID=f45e646c-c014-439f-8d9e-900c97340238 /app                    ext4    defaults        1 2UUID=3b7c45c5-c25e-4f8f-bd39-d9c45a2c2dd0 /boot                   ext4    defaults        1 2UUID=f28bd2d0-d322-4be8-b0ee-99fdcb5603aa swap                    swap    defaults        0 0UUID=ec3f26a9-9009-4016-adb4-58b81a8ae03a /home       ext4   usrquota,grpquota,defaults 0 0[root@Centos6T /]#mount -o remount /dev/sdb1[root@Centos6T /]#mount/dev/sda2 on / type ext4 (rw)proc on /proc type proc (rw)sysfs on /sys type sysfs (rw)devpts on /dev/pts type devpts (rw,gid=5,mode=620)tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")/dev/sda3 on /app type ext4 (rw)/dev/sda1 on /boot type ext4 (rw)none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)/dev/sr0 on /media/CentOS_6.9_Final type iso9660 (ro,nosuid,nodev,uhelper=udisks,uid=0,gid=0,iocharset=utf8,mode=0400,dmode=0500)/dev/sdb1 on /home type ext4 (rw,usrquota,grpquota)

至此,home切换完成。现在可以重启服务器重新登录,查看相关信息确认迁移是否成功

[root@Centos6T ~]#df -TFilesystem     Type    1K-blocks    Used Available Use% Mounted on/dev/sda2      ext4     51475068 4543248  44310380  10% /tmpfs          tmpfs      502056      76    501980   1% /dev/shm/dev/sda3      ext4     41153856  561284  38495420   2% /app/dev/sda1      ext4       999320   35008    911884   4% /boot/dev/sdb1      ext4     30838496  557520  28707816   2% /home/dev/sr0       iso9660   3878870 3878870         0 100% /media/CentOS_6.9_Final[root@Centos6T ~]#su- geoffrey[geoffrey@Centos6T ~]$pwd/home/geoffrey[geoffrey@Centos6T ~]$lsDesktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos[geoffrey@Centos6T ~]$ll Desktop/importantfile.tar.gz-rw-rw-r--. 1 geoffrey geoffrey 524288000 Aug 12 03:50 Desktop/importantfile.tar.gz

至此,home目录迁移工作全部完成。