|
在本文中,您会找到我折腾了数小时都未能尝试向 Solaris 虚拟机磁盘映像添加磁盘空间的记录。原来是需要某些“新思维”。如果您需要正确的解决方案,就直接转到文章结束部分。
我正在 MacBook Pro 上的 VMware Fusion 中运行我的 Solaris 映像。现在的问题的是如何扩展虚拟磁盘大小。 - 下载用于 MacOS X 的 VMware 虚拟磁盘管理器。这是随 Fusion 一起提供的命令行工具的一个 GUI。如果您确实喜欢使用命令行,则可以在以下位置找到它:
/Library/Application\ Support/VMware\ Fusion/vmware-vdiskmanager。自己来权衡。我相信您的能力! - 复制您的虚拟机。仅对副本进行操作!在 Finder 中选中它,然后选择“编辑”>“复制”(Apple-D)。在制作副本时,虚拟机不能正在运行,甚至不能在使用中和处于挂起状态。Fusion 会对此提示操作不当。
- 启动 Fusion
- “文件打开...”新的虚拟机副本
- Fusion 会注意到文件名已更改并提示您是否已复制该文件。
- 挂起虚拟机
- 在扩展此磁盘前您必须先丢弃任何快照。虚拟机 > 丢弃快照。
- 启动 Vdiskmanager GUI
- 单击“扩展”,然后在虚拟机中查找 vmdk 文件。选择所需的大小。
- 单击“运行”(该 GUI 将在窗口底部回显它所使用的命令行,以检查欺骗行为)
- 该 GUI 不会显示此活动的进度。
- 完成时如果具有此状态则将打开“结果”选项卡。
现在,真正有趣的就要开始了。但是,Format 显示我的磁盘为其初始大小 10 GB,而非新大小 18 GB。此时 fdisk 将派上用场。 fdisk /dev/rdsk/c8t0d0p0 显示我的磁盘有一个占整个磁盘 56% 的分区。这证明该操作发挥了作用。现在我们尝试删除该分区,然后在操作系统运行时重新创建一个空间较大的分区(屏息)。遗憾的是,此尝试失败了,如果您不乐意从我的失败中汲取教训,请跳到下一部分。
- fdisk /dev/rdsk/c8t0d0p0
- 选择 3 删除该分区,选择分区 1 并确认
- 选择 1 创建一个分区。指定占磁盘的 100%。
- 选择 5 退出,但愿能成功!
- 运行 Format,崩溃了(哦,惨了!庆幸的是这只是个副本!)
- 系统重新引导并且 Grub 没有菜单。引导内核的所有尝试均告失败。哎。再试一次。
好了,可以看出 Solaris 在运行时不希望我移除和重新创建其 fdisk 分区。如何创建单独的分区并装载它呢?摒弃此核心此虚拟机并创建原件的另一个副本。重复这些步骤来增加磁盘大小,然后... 此尝试也告失败,如果您不乐意从我的失败中汲取教训,请跳到下一部分。 - 需要重新引导,以使 fdisk 识别新的较大大小
- fdisk /dev/rdsk/c8t0d0p0
- 选择 1 创建新分区,输入大小,不要使其处于活动状态
现在,我又卡壳了。我找不到获取格式的方法来识别磁盘以便构建盘片。newfs 拒绝写入没有分区表的新文件系统。 在 SunSolve 中,我发现了 6307998 这个错误,已附有以下注释。
我已经验证,基本上 Solaris 的限制在于 它不允许同一个磁盘上有多个 Solaris 物理分区。
功能的这种缺乏超过了安装程序,总的来说这是 Solaris 中所缺少的东西。Solaris 不支持同一个磁盘上有 2 个 Solaris 分区, 原因是磁盘驱动程序假定每个磁盘仅有一个 Solaris 分区。例如,如果我们引用 /dev/dsk/c0d0s0,则我们 如何确定需要在 c0d0 上访问的 Solaris 分区。 救助的 ZFS 当您有 ZFS 时有谁会需要那种讨厌的旧格式和 mkfs 材料呢! - 需要重新引导,这样 fdisk 才能识别新的较大磁盘
- fdisk /dev/rdsk/c8t0d0p0
- 选择 1 创建新分区,输入大小,不要使其处于活动状态
- zpool 创建 mypool /dev/dsk/c8t0d0p1
- zfs 创建 mypool/jim
我已经成功增加了虚拟存储! 备选方法:为映像中添加第二个磁盘 为了通过 Fusion 添加第二个硬盘。
- solaris 必须停止运行。
- 虚拟机必须关闭。
- 单击 + 号,添加磁盘并输入大小。
- devfsadm(差点键入了重新引导 -- -r,但这是“旧思维”,以便 format 可以看到新设备)。
format 搜索磁盘...完成
可用的磁盘选择: 0. c1t0d0 <DEFAULT cyl 1302 alt 2 hd 255 sec 63> /pci@0,0/pci1000,30@10/sd@0,0 1. c1t1d0 <DEFAULT cyl 2557 alt 2 hd 128 sec 32> /pci@0,0/pci1000,30@10/sd@1,0
# zpool create mypool /dev/dsk/c1t1d0 # zfs create mypool/jim
# zpool status pool: mypool state: ONLINE scrub: none requested config:
NAME STATE READ WRITE CKSUM mypool ONLINE 0 0 0 c1t1d0 ONLINE 0 0 0
# zpool list NAME SIZE USED AVAIL CAP HEALTH ALTROOT mypool 4.97G 116K 4.97G 0% ONLINE - 关注原因 此时,我发现我自己是问心有愧的(如果我的客户也频频做某些事情)。即将 Solaris 10 作为 Solaris 2.2 来对待。开放源码的 ZFS 的新功能不仅易于使用,而且这些功能还支持各种用户选项。
|