VMware ESXi CentOS 6.4 kickstart 安装

VMware ESXi CentOS 6.4 kickstart 安装

我尝试对 CentOS 6.4 进行 kickstart 安装,但它总是显示重新初始化硬盘的警告,因为它说可能包含无效的分区表或虚拟磁盘。下面是我尝试使用的 kickstart 文件的快照

# System bootloader configuration
bootloader --append="crashkernel=auto rhgb quiet" --location=mbr --driveorder="sda"
autopart
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel --drives=sda
part /boot --fstype ext4 --size=300
part / --fstype="ext4" --grow --size=1 --asprimary

我甚至创建了分区来尝试解决方法,但没有办法。有什么想法可以让这个警告消失吗?我正在尝试通过运行 ESXI 主机(具有 5.5 版本)的 Packer-tools 来执行此操作。下面是我使用的 JSON 模板

# cat base-packer.json
{
  "builders": [
    {
      "vm_name": "Centos6.5",
      "type": "vmware-iso",
      "iso_url": "http://127.0.0.1:8000/CentOS-6.5-x86_64-minimal.iso",
      "iso_checksum": "0d9dc37b5dd4befa1c440d2174e88a87",
      "iso_checksum_type": "md5",
      "disk_size": "20480",
      "disk_type_id": "thin",
      "http_directory": "~/packertemplatebuilding",
      "remote_host": "191.168.42.3",
      "remote_datastore": "52dfe32b-a996d262-9b46-2c4138a85a23/Centos6.5",
      "remote_username": "root",
      "remote_password": "rootpass",
      "remote_type": "esx5",
      "ssh_username": "vagrant",
      "ssh_password": "vagrant",
      "ssh_port": 22,
      "ssh_wait_timeout": "250s",
      "shutdown_command": "echo 'vagrant'|sudo -S shutdown -P now",
      "headless": "false",
      "boot_command": [
        "<tab> text ks=http://148.147.206.152:8000/ks_new.cfg<enter><wait>"
      ],
      "boot_wait": "20s",
      "vmx_data": {
        "ethernet0.virtualDev": "vmxnet3",
        "ethernet0.networkName": "VM Network",
        "ethernet0.addressType": "generated",
        "ethernet0.present": "TRUE",
        "ethernet1.virtualDev": "vmxnet3",
        "ethernet1.networkName": "VM Network 2",
        "ethernet1.addressType": "generated",
        "ethernet1.present": "TRUE",
        "ide0:0.fileName": "disk.vmdk",
        "ide0:0.present": "TRUE",
        "ide0:0.redo": "",
        "scsi0:0.present": "FALSE",
        "memsize": "2048",
        "numvcpus": "2",
        "cpuid.coresPerSocket": "1"
      }
    }
  ],
"provisioners": [
    {
      "type": "shell",
      "script": "ssh-commands.sh"
    }
  ]
}

下面是我收到的错误的快照。 在此处输入图片描述

PS 我使用的镜像是 CentOS 6.4 的自定义版本。但我不认为 kickstart 配置会对它产生影响。

答案1

如果您在 EL6 kickstart 中收到类似以下的错误消息,则需要添加zerombr到 kickstart 命令集中。

你还应该有这个:

zerombr
clearpart --all --initlabel

在此处输入图片描述

来自文档

zerombr:如果指定了 zerombr,则会初始化磁盘上发现的任何无效分区表。这会破坏具有无效分区表的磁盘的所有内容。在具有先前初始化的磁盘的系统上执行无人值守安装时,需要此命令。

编辑:

我刚刚在运行于 vSphere 5.5 平台上的全新 CentOS EL6.5 虚拟机上尝试了这个...以下操作连续运行三次没有问题,包括在相同的磁盘上重新安装:

zerombr
clearpart --all --initlabel
part /boot --fstype ext4 --size=300
part /usr --fstype ext4 --size=10240 --asprimary
part / --fstype ext4 --size=20480 --asprimary
part /var --fstype ext4 --size=6144
part swap --size=8192
part /tmp --fstype ext4 --size=2048

答案2

我发现一个潜在的问题:

      "iso_url": "http://127.0.0.1:8000/CentOS-6.5-x86_64-minimal.iso",

CentOS“最小”磁盘是定制的,可能会发生意想不到的事情,因为它仅用于安装一组软件包。它不应与 kickstart 安装一起使用;请改用 netinstall 或 DVD 映像。

答案3

但正如我所说,ISO是使用CentOS 6.4基础旋转的,它不应该影响kickstart安装。

您需要验证这一点。尝试使用标准 ISO。


如果仍然出现错误,您告诉它仅清除sda

# Partition clearing information
clearpart --all --initlabel --drives=sda

改成:

clearpart --all --initlabel

然后再试一次。

相关内容