rancher / os

Tiny Linux distro that runs the entire OS as Docker containers
https://rancher.com/docs/os/v1.x/en/
Apache License 2.0
6.44k stars 656 forks source link

Can't install on unpartitioned drive #2257

Open SamMousa opened 6 years ago

SamMousa commented 6 years ago

RancherOS Version: v1.2.0 Running on a VPS with an unpartition drive as /dev/vda. Booted via PxE, trying to install with: sudo ros install -c cloud-config.yml -d /dev/vda.

Get:

INFO[0000] No install type specified...defaulting to generic 
Installing from rancher/os:v1.2.0
Continue [y/N]: y
INFO[0001] start !isoinstallerloaded                    
ERRO[0001] Failed to get boot iso: Failed to run blkid: exit status 2 
There is no boot iso drive, terminate the task
FATA[0001] Failed to run install                         err="Failed to run blkid: exit status 2"

Blkid exit status 2 means no disk found or token not found.

The issue in this case is the lack of a partition table on /dev/vda.

@superseb suggested the boot param autoformat as a solution. (http://rancher.com/docs/os/v1.2/en/running-rancheros/server/pxe/)

However as far as I can tell this does not resolve the issue.

A workaround is to manually create a partition table:

echo -e "w\nq" | sudo fdisk /dev/vda

The installer then proceeds to show the error from #2241 for which a workaround is known.

So complete install on unpartitioned disk /dev/vda:

echo -e "w\nq" | sudo fdisk /dev/vda
sudo mkdir /dev/sr0
sudo ros install -c cloud-config.yml -d /dev/vda
niusmallnan commented 6 years ago

Hi, have you tried to add these options to your iPXE config? rancher.state.autoformat=[/dev/vda] rancher.state.dev=LABEL=RANCHER_STATE rancher.state.wait

I think you might miss the rancher.state.wait.

SamMousa commented 6 years ago

I'll try; regardless of what workaround works, the error message needs to be more informative...

hbokh commented 6 years ago

@niusmallnan I tried your options, but they do not seem to work overhere. These are the errors when installing on an unpartitioned disk on a Proxmox VM:

INFO[0000] No install type specified...defaulting to generic
Installing from rancher/os:v1.2.0
Continue [y/N]: y
INFO[0002] start !isoinstallerloaded
INFO[0002] starting installer container for rancher/os:v1.2.0 (new)
Unable to find image 'rancher/os:v1.2.0' locally
v1.2.0: Pulling from rancher/os
ff3a5c916c92: Pull complete
aeb1a3d2c95a: Pull complete
d73234bd6360: Pull complete
55a694795d71: Pull complete
c40bf59a46c7: Pull complete
e8bfb1637acc: Pull complete
fea51a59f87a: Pull complete
0c85e02ddb1a: Pull complete
ceea767134b5: Pull complete
b9f5daf6c348: Pull complete
Digest: sha256:84cb7893d8a61746d5a1449c048556ab36862ef292a86f658eb00d3cb9a958ac
Status: Downloaded newer image for rancher/os:v1.2.0
Installing from rancher/os:v1.2.0
time="2018-03-13T19:18:06Z" level=info msg="start !isoinstallerloaded"
time="2018-03-13T19:18:06Z" level=error msg="partition /dev/sda mounted, cannot repartition"
time="2018-03-13T19:18:06Z" level=error msg="error setDiskpartitions partition /dev/sda mounted, cannot repartition"
time="2018-03-13T19:18:06Z" level=fatal msg="Failed to run install" err="partition /dev/sda mounted, cannot repartition"
FATA[0037] Failed to run install                         err="exit status 1"

It seems /dev/sda is mounted at boot-time. For now I use these option in my PXE-boot, followed by @SamMousa 's fdisk-hack:

APPEND initrd=rancheros/initrd rancher.state.autoformat=[/dev/sda,/dev/vda] rancher.state.dev=none -- rancher.cloud_init.datasources= ...

niusmallnan commented 6 years ago

Before you run ros install, can you please show me the output about blkid?

hbokh commented 6 years ago

@niusmallnan I could try that some time later: now that RancherOS is running with some workloads, I'd rather not format the disk and re-install it. Besides: disk /dev/sda was mounted at boot-time, so the installation was "doomed" anyway.

LarsAC commented 4 years ago

Re-confirmed with 1.5.5 over here. Running on a mini computer (ZBox) with just one SSD (dev/sda), initial install via PXE. Needed to remove rancher.state.autoformat from kernel params and execute above steps. Then ros install would run.

Please check full log of procedure in this gist: https://gist.github.com/LarsAC/a7459fb7a0e6bc1a6debd9e2a3bb8444