将/home目录重新mount到新的硬盘的方法
新来的机子(行云)中配有4块各2T的硬盘,系统的安装是由乙方负责的,安装的不是非常的规范。4块盘只使用了其中的一块,其他三块都没有被使用。并且,在挂载的时候都没有将/home目录单独的挂载。只是将/目录挂载在/dev/sda2下了。df的结果如下
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 1845098372 16123488 1735249292 1% /
none 132320928 280 132320648 1% /dev
none 132325800 164 132325636 1% /dev/shm
none 132325800 344 132325456 1% /var/run
none 132325800 0 132325800 0% /var/lock
none 132325800 0 132325800 0% /lib/init/rw
于是,打算将其他的盘使用起来,将/home目录挂载到新的盘上去,不然就浪费了这么大的容量。
具体的操作手法如下:
第一步:由于2T的硬盘的分区不能采用fdisk,所以使用parted工具对新的硬盘做文件系统,
user1@compute-01:~$ sudo parted#进入交互模式
GNU Parted 2.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print all #打印信息
Model: ATA ST2000NM0011 (scsi)
Disk /dev/sda: 2000GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 1049kB 2097kB 1049kB bios_grub
2 2097kB 1920GB 1920GB ext4
3 1920GB 2000GB 80.9GB linux-swap(v1)
Model: ATA ST2000NM0011 (scsi)
Disk /dev/sdb: 2000GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Error: /dev/sdb: unrecognised disk label#发现sdb,sdc,sdd都无法认到
Error: /dev/sdc: unrecognised disk label
Error: /dev/sdd: unrecognised disk label
(parted) select /dev/sdb#选择/dev/sdb为操作对象
(parted) mklabel gpt#创建新的分区表 格式为gpt
(parted) print #打印信息
(parted) mkpart primary 0 2000GB #分一个2T的主分区
(parted) print #打印信息
(parted) q#退出
第二步:运行sudo mkfs.ext4 /dev/sdb1格式化/dev/sdb1
成ext4
第三步:将/home目录里的内容全部拷贝到/home_bak中,要注意使用
cp -a选项
第四步:运行sudo mount -t ext4 /dev/sdb1 /home 将home目录挂载到新分配的/dev/sdb1上
第五步:将/home_bak中的所有内容拷贝到新的/home目录下,要注意使用
cp -a选项
第六步:修改/etc/fstab,在最后一行加入如下内容,保证每次启动自动mount
/dev/sdb1 /home ext4 defaults 0 2
这样就大功告成了,重启以后如果没有问题就基本没有问题了。
不过这样做会有一个后遗症是,原来的/home目录里的数据存在/dev/sda上,永远不会被访问到,造成了浪费。解决办法是umount /home 后再删掉里面的数据(注意不要删除/home文件夹)再重新运行sudo mount -t ext4 /dev/sdb1 /home。