taliesins / packer-baseboxes

Templates for packer to build base boxes
219 stars 93 forks source link

Issue with Virtualbox-ubuntu-16.04.json #3

Open i5okie opened 7 years ago

i5okie commented 7 years ago

Looks like the boot command is no longer correct.

If you replace the first three lines of boot_command:

"<esc><wait10><esc><esc><enter><wait>",
            "set gfxpayload=1024x768<enter>",
            "linux /install/vmlinuz "

with:

"<enter><wait>",
            "<f6><esc>",
            "<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
            "<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
            "<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
            "<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
            "<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
            "<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
            "<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
            "<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
            "<bs><bs><bs>",
            "/install/vmlinuz ",

Looks like this gets you to the correct prompt to type in the boot command. It didn't like the linux command there.

I've left the rest of boot command lines as is. And when I vrdp in, I see it's got a Kernel panic:

not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

taliesins commented 7 years ago

@i5okie can you let me know the version of Virtual Box you are using and the version of guest editions.

Might as well throw in the operating system as well.

I am currently looking into why my build of Windows 10 on Virtual Box is failing but I thought it was a dodgy slipstreammed iso.

i5okie commented 7 years ago

host: Windows 10x64 vb: 5.1.12r112440 vbga: VBoxGuestAdditions-5.1.12

mendhak commented 7 years ago

I was getting the kernel panic as well. I've botched this together which seems to work, but I can't say what exactly the fix is.

Win10x64 VirtualBox: Version 5.1.26 r117224 (Qt5.6.2) Guest Additions: Dunno, sorry

"boot_command": [
  "<enter><wait><f6><esc><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
  "/install/vmlinuz noapic ",
  "initrd=/install/initrd.gz ",
  "file=/floppy/preseed.cfg ",
  "debian-installer=en_US auto locale=en_US kbd-chooser/method=us ",
  "hostname={{ user `hostname` }} ",
  "grub-installer/bootdev=/dev/sda<wait> ",
  "fb=false debconf/frontend=noninteractive ",
  "keyboard-configuration/modelcode=SKIP keyboard-configuration/layout=USA ",
  "keyboard-configuration/variant=USA console-setup/ask_detect=false ",
  "passwd/user-fullname=vagrant ",
  "passwd/user-password=vagrant ",
  "passwd/user-password-again=vagrant ",
  "passwd/username=vagrant ",
  "-- <enter>"
],
"floppy_files": [
  "./linux/ubuntu/http/preseed.cfg"
],
taliesins commented 6 years ago

I think issue has been fixed with #7

arteedecco commented 6 years ago

The updated boot command from @mendhak and @i5okie were correct for me using Ubuntu 18.04. [EDIT I leave the following just to show the thought process in case someone else hits the same issue] But there's another related issue I can't resolve. It begins booting but can't find the preseed.cfg file.

image

Looking at the file structure for the project I can't see how it could work.

In the builder we set: "http_directory": "./linux/ubuntu/http/"

But when you look at the directory structure w/in the http dir it is: image

I presume the installer does not search at all so when it goes to the http/ dir it looks for "preseed.cfg" and does not find it. I also gather that's why @mendhak added it via "floppy_files".

Am I missing something or part of the instructions where you're supposed to merge / move those two preseed.cfg files from the Ubuntu distro sub-folder and core subfolders?

[EIDT] Okay forgive my newbishness. Of course... @mendhak had changed the boot_command to point at the floppy dir and path... an edit off the project files.

pdennis33 commented 5 years ago

@mendhak 's edit of the boot_command worked for me except I still ran into a couple issues. One note just in case anyone isn't aware of this is to first open the virtualbox-ubuntu-16.04.json file and change the section in builders from "headless": true, to "headless": false,. This will let you see exactly what's going on and easily see any errors and watch the progress etc. Now onto the issues and how I fixed them.

  1. I wanted to just use the preseed that it comes with. It is incorrectly set to "preseed/url=http://{{.HTTPIP}}:{{.HTTPPort}}/16.04/preseed-cloud-init.cfg ", so it will error since the username and password are ubuntu instead of vagrant (which is later used in the boot_command). It should be changed to "preseed/url=http://{{.HTTPIP}}:{{.HTTPPort}}/16.04/preseed.cfg ",
  2. I received an error Unable to install GRUB in (default and it was just a matter of opening the http\base\preseed.cfg file and editing the line d-i grub-installer/bootdev string (default to delete the ( , resulting in d-i grub-installer/bootdev string default

I was then able to get it to successfully create the vagrant box.