1、前言:ide
这个使用的是Oracle Solaris Live Upgrade工具。此工具具备如下功能:工具
■ 将UFS 根文件系统迁移到ZFS 根文件系统时,必须使用-p 选项指定现有ZFS 存储池。
■ 若是UFS 根文件系统在不一样的片上具备组件,则会将这些组件迁移到ZFS 根池。
■ 能够迁移具备区域的系统,但在Solaris 10 10/08 发行版中支持的配置有限。this
■ 在同一池中建立新的ZFS BE 时,Oracle Solaris Live Upgrade 可使用ZFS 快照和克隆功能。lua
迁移的基本过程以下:3d
■ 在任何基于SPARC 或基于x86 的受支持系统上,安装Solaris 10 10/0八、Solaris 105/0九、Solaris 10 10/09 或Solaris 10 9/10 发行版,或者使用标准升级程序从先前的Solaris 10 发行版进行升级。
■ 运行最低Solaris 10 10/08 发行版时,为ZFS 根文件系统建立ZFS 存储池。
■ 使用Oracle Solaris Live Upgrade 将UFS 根文件系统迁移到ZFS 根文件系统。
■ 使用luactivate 命令激活ZFS BE。blog
迁移以前的注意事项:get
■ Oracle Solaris 安装程序GUI 的标准升级选项不可用于从UFS 迁移到ZFS 根文件系统。要从UFS 文件系统迁移,必须使用Oracle Solaris Live Upgrade工具。
■ 在进行Oracle Solaris Live Upgrade 操做以前,必须建立将用于引导的ZFS 存储池。建立新池以前,必须使用片而不是整个磁盘建立ZFS 存储池,而且确保要用于池中的磁盘具备SMI (VTOC) 标签而不是EFI 标签,才能使ZFS 存储池可升级和可引导。若是使用的是EFI,在使用lucreate命令的时候会报错的。it
■ 不能使用Oracle Solaris Live Upgrade 从ZFS BE 建立UFS BE。若是将UFS BE 迁移到ZFS BE,而且保留UFS BE,则能够从UFS BE 或ZFS BE 引导。
■ 请勿使用zfs rename 命令重命名ZFS BE,由于Oracle Solaris Live Upgrade 功能没法检测名称更改。后续命令(如ludelete)将会失败。实际上,若是有要继续使用的现有BE,则请勿重命名ZFS 池或文件系统。
■ 建立备用BE(主BE 的克隆)时,不能使用-f、-x、-y、-Y 和-z 选项从主BE 中包括或排除文件。在如下状况下,您仍可使用包括和排除选项设置:
■ 虽然可使用Oracle Solaris Live Upgrade 将UFS 根文件系统升级到ZFS 根文件系统,但不能使用Oracle Solaris Live Upgrade 升级非根或共享文件系统。
■ 不能使用lu 命令建立或迁移ZFS 根文件系统。class
2、迁移过程:cli
一、查看当前文件系统的状态:
二、添加新硬盘并分区:
这里的c1t1d0是新添加的,用于建立zfs池。
三、建立zfs池rpool:
四、使用lucreate建立新的引导环境:
-c:若是系统以前没有建立引导环境,则指定一个主引导环境,其名称为ufsBE。
-n:新的引导环境名称。
-p:zfs池名称。
这个过程根据系统环境过程可能比较长,耐心等待吧。
五、查看BE状态:
处于激活状态的是ufsBE,而且能够引导。而zfsBE还未激活,因此状态是no而且可删除。
六、查看zfs组件:
这里的dump使用系统推荐的大小便可。
七、激活zfsBE:
上面提到了两点:
(1)、在此情况下只能使用shutdown或者init命令重启系统,不然系统是不能使用zfsBE引导的。
(2)、若是系统系统失败了,则可使用上述屏幕输出的5条命令激活ufsBE,从ufsBE引导系统。
八、将系统从新引导至ZFS BE:
此过程会更新grub的menu.lst文件。
在引导的grub界面会多出上图中的zfsBE两行,此刻系统默认的引导环境是zfsBE。
九、系统起来后查看ZFS BE 是否处于活动状态:
这里的ufsBE能够删除掉了。
文件系统状态:
zfs池状态:
3、切换回ufsBE:
一、查看zfsBE是否处于激活状态:
二、执行luactive命令,激活ufsBE:
三、执行init 6重启系统:
四、系统起来后检查是否正常:
ufsBE已处于激活状态了。zfsBE能够删除了。
五、删除不须要的BE:
这个因为使用c1t1d0建立了zfs池,并且上面存在一个引导环境<zfsBE>,因此报错。不过上面给出了提示,可使用-f参数强制删除zfsBE。
完了以后重启下,是否存在问题:
4、补充:
使用lucreate命令的时候,它会将须要的文件放在/etc/lu下面,具体内容以下图所示:
其中GRUB_backup_menu是未执行lucreate命令以前的引导文件menu.lst,内容如图所示:
GRUB_backup_menu.prev是执行完lucreate命令以后的引导文件menu.lst,内容如图所示:
其余的一些文件,有兴趣的朋友能够研究下。