某些时候,由于空间不足或是硬件故障等原因,我们需要更换启动磁盘。冗余池(mirrored pool)在一个镜像池里面更远硬盘相对简单一些,只需要用replace命令直接更换硬盘即可。非冗余池如果根池不是mirrored,,那么就需要先把新磁盘分区好,加入根池形成mirrored类型的池。加入新盘并检测# devfsadm分区并打标签添加磁盘现在把做好的新磁盘分区加入根池形成镜像池,这一步里数据的同步可能会花费比较长的时间安装启动块On a SPARC based system:# installboot -F zfs /usr/platform/`uname -i`/lib/fs/zfs/bootblk /dev/rdsk/c1t9d0s0On an x86 based system:# installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c1t9d0s0验证boot首先查看boot path
# prtconf -vp|grep -i bootpathbootpath: ‘/virtual-devices@100/channel-devices@200/disk@0:a’
可以推断出新盘path的末尾是disk@2:a,然后启动
{0} ok setenv boot-device /virtual-devices@100/channel-devices@200/disk@2:aboot-device = /virtual-devices@100/channel-devices@200/disk@2:a{0} ok printenv boot-deviceboot-device = /virtual-devices@100/channel-devices@200/disk@2:a
ok boot /virtual-devices@100/channel-devices@200/disk@2:a
移除老磁盘
# zpool detach rpool c0d0s0
扩展池空间由于之前的磁盘空间小于新盘,所以现在的空间是和之前一样的,需要扩展一下。
# zpool set autoexpand=on rpool
至此为止,大功告成。
世上并没有用来鼓励工作努力的赏赐,所有的赏赐都只是被用来奖励工作成果的。