This month we are at LiNCORE offices (part of the ReigateHub) in Reigate on 9th March. Our thanks go to Jay Bennie for hosting us.
Bring a 'box', bring a notebook/netbook, bring anything that might run Linux, or just bring yourself and enjoy socialising, learning, teaching or simply chilling out!
New members are very welcome. We're not a cliquey bunch, so you won't feel out of place! Usually between 15 and 30 people come along.
It was a great pleasure to see the Reduced Shakespeare Company again last week. They are currently touring the UK with their show “The Complete Works of Shakespeare (abridged) (revised)” before they take up residence at the Leicester Square Theatre over the summer. This was the third time I’ve seen the Shakespeare show, albeit the first time in the “(revised)” form.
I’ve seen some of their other shows (I wrote about seeing the Complete World of Sports last summer) but have always had a soft spot for the Shakespeare show: It’s funny, but in an incredibly endearing way. The central concept is simple: Three people (Americans! Shock, horror) try to perform all of Shakespeare’s plays in an hour and a half, without realising how impossible their task is.
You don’t have to be familiar with Shakespeare to enjoy the show, although a little GCSE-level knowledge of a play or two helps. For the most part the updates in this revised version are subtle, work well and make sure that the show appeals to everyone.
I was lucky enough to get plucked from the audience by Matt Pearson (right) to run around on stage like an idiot. This means I can chalk up playing Ophelia’s ego alongside a pig and a urine tester in other RSC productions. As I got onto stage Matt Rippy (second from right) managed to work into the melee of dialogue that was flying around that he recognised me from Twitter!
I chatted to the guys briefly afterwards, and got to recommend a local curry house to Gary Fannin (left). One of the great things about RSC shows is that they differ depending on who is performing in them. This cast are great guys and work really well together, so get along to see them.
Pin ItYou can use qcow2 backing files as a convenient way to test what happens when you try to create exabyte-sized filesystems. Just to remind you, 1 exabyte is a million terabytes, or a pile of ordinary hard disks stacked 8 miles high.
There is a bug in qemu that prevents you from creating very large disks unless you adjust the cluster_size option (thanks Kevin Wolf):
$ qemu-img create -f qcow2 huge.qcow2 \ $((1024*1024))T -o cluster_size=2M Formatting 'huge.qcow2', fmt=qcow2 size=1152921504606846976 encryption=off cluster_size=2097152 lazy_refcounts=offAfter that you can just attach the disk to guestfish and start playing with huge filesystems.
[I should note that virt-rescue is probably a better choice of tool here, especially for people who need to experiment with unusual filesystem or LVM options]
$ guestfish -a huge.qcow2 Welcome to guestfish, the guest filesystem shell for editing virtual machine filesystems and disk images. Type: 'help' for help on commands 'man' to read the manual 'quit' to quit the shell ><fs> run ><fs> blockdev-getsize64 /dev/sda 1152921504606846976 ><fs> part-disk /dev/sda gptExt4 (according to Wikipedia) is supposed to support 1 exabyte disks, but I couldn’t get that to work, possibly because there was not enough RAM:
><fs> mkfs ext4 /dev/sda1 libguestfs: error: mkfs: ext4: /dev/sda1: mke2fs 1.42.5 (29-Jul-2012) /dev/sda1: Not enough space to build proposed filesystem while setting up superblockXFS could create a filesystem, but I didn’t let it run to completion because it would need about 5 petabytes to store the filesystem metadata:
><fs> mkfs xfs /dev/sda1 [ disks churn for many minutes while qcow2 file grows and grows and grows ... ]LVM2 PVs are possible, but creating a VG requires us to adjust the extent size:
><fs> pvcreate /dev/sda1 ><fs> vgcreate VG /dev/sda1 libguestfs: error: vgcreate: PV /dev/sda1 too large for extent size 4.00 MiB. Format-specific setup of physical volume '/dev/sda1' failed. Unable to add physical volume '/dev/sda1' to volume group 'VG'. ><fs> debug sh "vgcreate -s 1G VG /dev/sda1" Volume group "VG" successfully created ><fs> lvcreate LV VG 1000000000 ><fs> lvs-full [0] = { lv_name: LV [...] lv_size: 1048576536870912 }
53-55 Lichfield St
Wolverhampton
West Midlands
WV1 1EQ
Eat, Drink and talk Linux
Event Date and Time: Wed, 15/05/2013 - 19:30 - 23:00Herein an brief account of our holiday at my wife's parent's house in Adapazarı, Turkey.
Day 0 - DriveFor the first time, we decided to book a hotel near the airport for the night before flying. Luton is only a two hour drive away but with a 6:30am flight and a small child, we decided a hotel would be prudent.
It certainly was. Somehow, though, I'd managed to book the hotel for two weeks later than I'd intended. I blame laterooms.com's mobile site as I booked the thing on the tablet and I'm certain I selected the right day to start with :P
Day 1 - FlyingThe flight - despite all of our fears to the contrary - went without a hitch and the little man was calm and happy throughout! We arrived at the airport to be greeted by father- and sister-in-law who swiftly transported us to their home. We rested on the veranda in their beautiful (30 degrees though) countryside house.
Day 2 - Down the cityWe went into the local town for provisions and to stretch our legs.
Day 2 - CheeseAfter a grumpy start on my part, I learned that driving a left-hand-drive car is really no different. We went to a fish restaurant situated at the end of a road that followed the floor of a luscious valley near Hendek. There was a starter that consisted of a ceramic bowl filled with baked cheese and another of mushrooms with baked cheese. The main course was alabalık (trouy) baked with tomatoes, onions, herbs, and cheese. The cheese was a locally-produced variety that nobody seemed to be able to name but it was reminscent of mozzarella in its texture and halloumi in taste.
Day 3 - IstanbulWe decided for the dude's birthday that we'd have a day out in İstanbul. After a late start (par for the course these days) we got the 11 o'clock bus from Adapazarı terminal and arrived in Harem around 12:30. We proceeded immediately to the ferry at Üsküdar which took us to Beşiktaş where we had my favourite fish in bread and mussel dolma for lunch.
Following lunch, we took a tour boat that goes down the Bosphorous and back up to the next stop from the start point. The highlight of the sights from the boat must be the twin forts, one on either side of the Bosphorous. Now I come to write that, I can't help but think of Minas Tirith and Minas Ithil.
After the tour, we walked to Karaköy and struggled up the long hill past Galata tower up to Tünel. Thence, a pint and some snacks before walking to my wife's favourite place for Tantuni. Then, Taksim for ıslak burger and a final walk back to Beşiktaş to get the ferry and bus back to the terminal at Harem just in time to catch the last bus (10pm by this point!) back to Adapazarı.
Day 4 - ShoppiTired out by a hectic day of movement to, from, and within the bustle of Istanbul, day 4 was spent gently strolling through the streets of Sakarya where we bought some nice things for my mother-in-law, some provisions for the house, and lots of fish for dinner.
Note to self: Find out the English names for Çupra, İstavrit, and Palamut. Çupra was the tastiest, though full of bones.
Dinner was great; stayed up late chatting with family; fell asleep in seconds. Woken too soon by the dude.
Day 5 - ClimbingA lazy start and the news that aunty number three would be delayed led us to reconsider our plans for the day. After considering a few options, we (well, I) elected for Maşukiye. Once we got there, it became apparent that the pictures we'd seen that took us there were actually of Kartepe - a mountain with a popular ski resort at the top in the winter - so up we went! Driving up the mountain was all well and good (apart from some painful ear-popping) until we reached the highest point reachable by car. For some daft reason, the resort at the top hadn't seen fit to look after their part (the final part) of the road so the last 100 yards or so was a hair-raising gravely, dusty road that wound around and around to reach the top. To my eyes, which are so used to right-hand-drive cars, the road was around about exactly as wide as the car.
Bricks were shat.
But we got there, we enjoyed the wonderful view from the top of the mountain, and more bricks were shat as I considered the even more terrifying journey back down the slippery-looking, steep hill.
But we got back down again.
And once we were down, we ate passable food at an overpriced restaurant overlooking a series of small waterfalls. Better views were had, however, by leaving the restaurant and taking a shortish walk up the path through the trees behind the resort.
Day 7 - BidetSunday was designated as the official birthday party day for the little man as we'd buggered off to Istanbul on his actual birthday. The morning was spent making preparations (decorating the veranda, picking up the cake, etc) and the afternoon with extended family eating, drinking, being merry, and playing games.
Day 8 - Not the seasideI'd said that while we were in Turkey I wanted to spend one day at the beach and we'd thus far not managed to do so. The morning starting bright and sunny, I decreed that to the beach we would go. Half way there - the black sea was about 80km away - the sky clouded over, the sun gone.
We proceeded anyway to the seaside town of Karasu where we asked for directions and were given a recommendation to visit a nearby waterfall at Maden Deresi.
When we arrived at the waterfall car park, we were let in to the fact that the actual waterfall was a 45 minute walk away with some caves along the way that would not be passable with a push chair.
Of course, as we were already there, we decided to go anyway and that we'd just carry the baby.
The walk turned out to be a fairly hair-raising trek along a narrow passage cut into the side of the hill. Most of the journey involved a sheer drop to one side - sometimes there was a wall. The caves turned out to be equally narrow and low to boot. This, it turned out, was really not a sensible thing to do with a baby.
We arrived safely at the waterfalled, revelled in it for a bit, and then trekked back :)
I suspect we may be the first people ever to have done that walk with a baby.
Day 9 - Taking it easyThe final day of our holiday was spent partly in the nearby city buying provisions for the family and partly just relaxing on the veranda.
I spent the evening packing while the wife dealt with last-minute visiting relatives who seemed determined to keep us up late despite our early start the next day.
Day 10 - Flying againAnd then we flew back :)
Lumail <http://lumail.org> received two patches today, one to build on Debian Unstable, and one to build on OpenBSD.
The documentation of the lua primitives is almost 100% complete, and the repository has now got a public list of issues which I'm slowly working on.
Even though I can't reply to messages I'm cheerfully running it on my mail box as a mail-viewer. Faster than mutt. Oddly enough. Or maybe I'm just biased.
First, it needs to be said. Automatic tracing and dumping data into Openstreetmap is not a good idea. This page is something I have been playing with as an aid to manual edits.
This is a simple summary of the steps I used. If you need more information, then you probably should not be doing this.
I am not sure if this actually makes much improvement over simply clicking over the background imagery by hand. Maybe someone else can improve this process a bit more. This is really written as a reminder to myself incase I come back to this later.
All this is done with free software. The initial idea came from the openstreetmap wiki. There is also a python program that can do this called Mapseg, but it is not very fast on my little computer.
New in libguestfs upstream and 1.21.39 is the ability to access disks over FTP, FTPS, HTTP, HTTPS and TFTP (read-only).
You can use it like this:
$ export LIBGUESTFS_BACKEND=direct $ guestfish --ro -a http://x.x.x.x/scratch/winxp.img -i Welcome to guestfish, the guest filesystem shell for editing virtual machine filesystems and disk images. Type: 'help' for help on commands 'man' to read the manual 'quit' to quit the shell Operating system: Microsoft Windows XP /dev/sda1 mounted on / ><fs> ll / total 1573209 drwxrwxrwx 1 root root 4096 Apr 16 2012 . drwxr-xr-x 23 1000 1000 4096 May 11 18:45 .. -rwxrwxrwx 1 root root 0 Oct 11 2011 AUTOEXEC.BAT -rwxrwxrwx 1 root root 0 Oct 11 2011 CONFIG.SYS drwxrwxrwx 1 root root 4096 Oct 11 2011 Documents and Settings -rwxrwxrwx 1 root root 0 Oct 11 2011 IO.SYS -rwxrwxrwx 1 root root 0 Oct 11 2011 MSDOS.SYS -rwxrwxrwx 1 root root 47564 Apr 14 2008 NTDETECT.COM drwxrwxrwx 1 root root 4096 Oct 11 2011 Program Files drwxrwxrwx 1 root root 4096 Oct 11 2011 System Volume Information drwxrwxrwx 1 root root 28672 Oct 11 2011 WINDOWS -rwxrwxrwx 1 root root 211 Oct 11 2011 boot.ini -rwxrwxrwx 1 root root 250048 Apr 14 2008 ntldr -rwxrwxrwx 1 root root 1610612736 Oct 11 2011 pagefile.sysApart from being a tiny bit slower, it just works as if the disk was local.
In libguestfs ≥ 1.21.38 you can access at least some iSCSI disks.
On my server (RHEL 6 in this case) I create an iSCSI target backed by a Windows XP disk image:
# service tgtd start Starting SCSI target daemon: [ OK ] # tgtadm --lld iscsi --op new --mode target --tid 1 \ -T iqn.1994-05.com.redhat # chcon system_u:object_r:tgtd_var_lib_t:s0 /tmp/winxp.img # tgtadm --lld iscsi --op new --mode logicalunit --tid 1 \ --lun 1 -b /tmp/winxp.img # tgt-admin -s ...Previously I opened port 3250 on the server. Because libguestfs doesn’t yet support authentication against the iSCSI server, I had to bypass that:
# tgtadm --lld iscsi --mode target --op bind --tid 1 -I ALLNow on the client, I can connect to the iSCSI target using libguestfs like this:
$ export LIBGUESTFS_BACKEND=direct $ guestfish --format=raw -a iscsi://x.x.x.x/iqn.1994-05.com.redhat/1 -i Welcome to guestfish, the guest filesystem shell for editing virtual machine filesystems and disk images. Type: 'help' for help on commands 'man' to read the manual 'quit' to quit the shell Operating system: Microsoft Windows XP /dev/sda1 mounted on / ><fs> ll / total 1573209 drwxrwxrwx 1 root root 4096 Apr 16 2012 . drwxr-xr-x 23 1000 1000 4096 May 11 17:16 .. -rwxrwxrwx 1 root root 0 Oct 11 2011 AUTOEXEC.BAT -rwxrwxrwx 1 root root 0 Oct 11 2011 CONFIG.SYS drwxrwxrwx 1 root root 4096 Oct 11 2011 Documents and Settings -rwxrwxrwx 1 root root 0 Oct 11 2011 IO.SYS -rwxrwxrwx 1 root root 0 Oct 11 2011 MSDOS.SYS -rwxrwxrwx 1 root root 47564 Apr 14 2008 NTDETECT.COM drwxrwxrwx 1 root root 4096 Oct 11 2011 Program Files drwxrwxrwx 1 root root 4096 Oct 11 2011 System Volume Information drwxrwxrwx 1 root root 28672 Oct 11 2011 WINDOWS -rwxrwxrwx 1 root root 211 Oct 11 2011 boot.ini -rwxrwxrwx 1 root root 250048 Apr 14 2008 ntldr -rwxrwxrwx 1 root root 1610612736 Oct 11 2011 pagefile.sysWe have regular sessions on the second Saturday of each month. Bring a 'box', bring a notebook, bring anything that might run Linux, or just bring yourself and enjoy socialising/learning/teaching or simply chilling out!
This month's meeting is at the Red Hat offices in Farnborough, Hampshire. Our thanks to Dominic Cleal for hosting us.
vimrc comments start with "
howdoi would be useful if it worked
xargs -I {} is handy
(Thanks to Jeff Cody for both writing the code and helping me to get it to work).
New in qemu 1.5 is read-only support for Hyper-V‘s native disk format, vhdx. You can now open vhdx files in libguestfs just like any other:
$ guestfish --ro --format=vhdx -a /tmp/f18x64.vhdx -i Welcome to guestfish, the guest filesystem shell for editing virtual machine filesystems and disk images. Type: 'help' for help on commands 'man' to read the manual 'quit' to quit the shell Operating system: Fedora release 18 (Spherical Cow) /dev/fedora/root mounted on / /dev/sda1 mounted on /bootNotes:
Situation: You have a Windows DVD (or ISO), but like any sane person in 2013 you don’t have a DVD drive on the computer. You want to convert the Windows DVD into a bootable USB key. There are many recipes for this online, but they all require another Windows machine and of course cannot be automated.
However with guestfish (and the always brilliant SYSLINUX doing most of the heavy lifting), this script will unpack the ISO and turn it into a bootable USB key.
Notes: