Skip to main content

Laptop with small screen + Hyper-V + Install CentOS

So I've got a nice new Lenovo ThinkPad laptop for work. Its got lots of memory and disk, awesome battery life, and it's nice and portable; just the thing for a systems engineer -- it even has a wired ethernet connection (I was previously using a Mac Air). It doesn't have a very large resolution though, just 1366 x 768.

Normally I would use VirtualBox, but on this laptop I'm trying out Hyper-V (because that's what Docker for Windows requires on Windows 10).

I went to install CentOS 7 (7.4), but the resolution of the default framebuffer is larger than can fit on my host's screen. This biggest annoyance about this is that Hyper-V wasn't showing me scroll-bars, and it also only allows to zoom in (for Hi-DPI screens), and not to zoom out. Being able to zoom out was very useful feature in VirtualBox, but the biggest problem was that it cut off the bottom of the screen, so I couldn't proceed with the install. Even text-mode installation was impractical because that's generally the region of the screen you care most about.

Normally, I would use something like 'resolution=800x600' (or a similar video= or vga= arguments....), but it wasn't making a difference; even in 'text' mode installer.

The thing to realise is that the Linux Integration Suite (LIS), which is bundled with CentOS / Linux kernel, has a different display driver. Coming from VirtualBox, I found it rather odd that you can't do things like set VRAM settings or virtual display hardware in Hyper-V, and I rather suspect that this is a major difference between Hyper-V and other hypervisors such as VirtualBox or VMWare ESXi, or VMWare Workstation. This perhaps explains why the resolution/video/vga arguments were not making a difference.

I found this very helpful page on, which showed me the light. You just need to add a little extra to the video argument.


Do this when you are about to boot into the installer. Unlike the netometer blog post, you don't need to do this using grubby if you do it at install-time; the setting will get carried through.

Great! So now I have a working installation environment. I wonder what other issues will crop up along the way...


Popular posts from this blog

Use IPTables NOTRACK to implement stateless rules and reduce packet loss.

I recently struck a performance problem with a high-volume Linux DNS server and found a very satisfying way to overcome it. This post is not about DNS specifically, but useful also to services with a high rate of connections/sessions (UDP or TCP), but it is especially useful for UDP-based traffic, as the stateful firewall doesn't really buy you much with UDP. It is also applicable to services such as HTTP/HTTPS or anything where you have a lot of connections...

We observed times when DNS would not respond, but retrying very soon after would generally work. For TCP, you may find that you get a a connection timeout (or possibly a connection reset? I haven't checked that recently).

Observing logs, you might the following in kernel logs:
kernel: nf_conntrack: table full, dropping packet. You might be inclined to increase net.netfilter.nf_conntrack_max and net.nf_conntrack_max, but a better response might be found by looking at what is actually taking up those entries in your conne…

ORA-12170: TNS:Connect timeout — resolved

If you're dealing with Oracle clients, you may be familiar with the error message
ERROR ORA-12170: TNS:Connect timed out occurred I was recently asked to investigate such a problem where an application server was having trouble talking to a database server. This issue was blocking progress on a number of projects in our development environment, and our developers' agile post-it note progress note board had a red post-it saying 'Waiting for Cameron', so I thought I should promote it to the front of my rather long list of things I needed to do... it probably also helped that the problem domain was rather interesting to me, and so it ended being a late-night productivity session where I wasn't interrupted and my experimentation wouldn't disrupt others. I think my colleagues are still getting used to seeing email from me at the wee hours of the morning.

This can masquerade as a number of other error strings as well. Here's what you might see in the sqlnet.log f…

Getting MySQL server to run with SSL

I needed to get an old version of MySQL server running with SSL. Thankfully, that support has been there for a long time, although on my previous try I found it rather frustrating and gave it over for some other job that needed doing.

If securing client connections to a database server is a non-negotiable requirement, I would suggest that MySQL is perhaps a poor-fit and other options, such as PostgreSQL -- according to common web-consensus and my interactions with developers would suggest -- should be first considered. While MySQL can do SSL connections, it does so in a rather poor way that leaves much to be desired.

UPDATED 2014-04-28 for MySQL 5.0 (on ancient Debian Etch).

Here is the fast guide to getting SSL on MySQL server. I'm doing this on a Debian 7 ("Wheezy") server. To complete things, I'll test connectivity from a 5.1 client as well as a reasonably up-to-date MySQL Workbench 5.2 CE, plus a Python 2.6 client; just to see what sort of pain awaits.

UPDATE: 2014-0…