All posts by John Goerzen

How to solve “The following packages cannot be authenticated”

Users of Debian’s testing or unstable distributions may be noticing messages from apt saying things like:

WARNING: The following packages cannot be authenticated!
  foo bar baz
Install these packages without verification [y/N]?

I noticed today that google doesn’t turn up good hits for the fix. The fix is really simple:

apt-get install debian-archive-keyring
apt-get update

That’s it. You now have secure packages from Debian. Nice, eh?

An iPod under Linux

I finally purchased my first iPod: a black 60GB iPod video model. I had been holding off for years. The iPod sounded nifty, but I just didn’t quite go there.

The thing that finally won me over was the camera connector. It lets you plug your iPod directly in to a digital camera. The iPod can download photos from the camera to its internal disk without the need for a PC. Very slick.

So anyway, we got the iPod and the camera adapter at the Apple store in Cambridge — a quick subway ride from Usenix. They were out of stock on the FM tuner, so I ordered that online.

The next step was to get the iPod working with Linux. I currently have it working with both music and video. Here’s how I did it.

Today’s Grammar Rant

I have read a lot of statements like this lately:

“CNN are reporting…”

“The Free Software Foundation are encouraging…”

Slashdot is a terrible offender, but I’ve been seeing it elsewhere as well.

So what’s wrong with this? CNN is an organization. Singular. The correct construction is “CNN is reporting…” Your subject is singular, so your verb should be singular as well.

“The employees of CNN are reporting” is also correct.

I are annoyed each time I read something like this. Is you annoyed too?

First Thougts on Xen

At work, we’ve been using vserver for virtualization for some years now. Due to various reasons, we’re looking at Xen.

I’ve been trying to switch my workstation to use Xen. I’ve enountered a few issues so far. Probably these will go away as I learn the system.

Overall, my greatest gripe is the documentation. It is outdated and just plain wrong far too often. For instance, there’s a place where it says to run “make ARCH=xen xconfig”, but the Xen kernel patches don’t (any more, at least) provide a xen arch.

The next gripe is the very weird kernel build system. Xen doesn’t ship a diff against a kernel tree. They instead ship whole files to extract atop a particular kernel version. Annoying and unwieldy. There is a command to generate a diff, but you have to download the full kernel tree first.

A couple of other gripes: There is little documentation on memory management (can Xen adjust the RAM usage of running VMs?), on 64-bit systems (can you run a 32-bit kernel under a 64-bit hypervisor? how about a 64-bit kernel that supports 32-bit userspace?)

I’m also having trouble with my forcedeth card locking up under Xen.

However, I’ve heard of lots of people having good luck with it so I’m going to keep trying.

But one would think that basic docs could be actually worked on a bit more.

Announcing HSH, the Haskell Shell

Following the “release early, release often” motto, I am happy to announce version 0.1.0 of HSH, the Haskell shell.

You may obtain it with:

darcs get --tag 0.1.0 http://darcs.complete.org/hsh

Things are still very rough in many ways, but this version already lets you:

  • Run commands
  • Pipe things between commands
  • Pipe command input/output into and out of pure Haskell functions
  • Pure Haskell functions are as much a first-class citizen as is grep or cat

Here is an example session: (some lines wrapped for readability)

$ ghci -fglasgow-exts HSH

*HSH> run $ ("ls", ["."])
COPYING    HSH        HSH.hs    TODO    announcements  testsrc
COPYRIGHT  HSH.cabal  Makefile  _darcs  test.hs

*HSH> run $ ("ls", ["-l"]) -|- ("wc", ["-l"])
12

*HSH> :m +Text.Printf
*HSH Text.Printf> let countLines = (zipWith (\i line -> printf "%-5d %s" i line) 
       [(1::Int)..])::([String] -> [String])

*HSH Text.Printf> run $ ("ls", ["-l"]) -|- countLines -|- ("grep", ["hs$"])
6     -rw-r--r-- 1 jgoerzen jgoerzen  1285 Jun  6 09:43 HSH.hs
11    -rw-r--r-- 1 jgoerzen jgoerzen   565 Jun  6 09:43 test.hs

*HSH Text.Printf> :m +Data.List
*HSH Text.Printf Data.List> run $ ("ls", ["-l"]) -|- countLines -|- 
         filter (isSuffixOf "hs")
6     -rw-r--r-- 1 jgoerzen jgoerzen  1285 Jun  6 09:43 HSH.hs
11    -rw-r--r-- 1 jgoerzen jgoerzen   565 Jun  6 09:43 test.hs

*HSH Text.Printf Data.List> run $ ("ls", ["-l"]) -|- countLines -|- filter (isSuffixOf "hs") 
       -|- ("tr", ["a-z", "A-Z"])
6     -RW-R--R-- 1 JGOERZEN JGOERZEN  1285 JUN  6 09:43 HSH.HS
11    -RW-R--R-- 1 JGOERZEN JGOERZEN   565 JUN  6 09:43 TEST.HS

*HSH Text.Printf Data.List> let generator = \(_::String) -> unlines . map show $ [1..20]
*HSH Text.Printf Data.List> generator ""
"1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n"
*HSH Text.Printf Data.List> run $ generator -|- ("grep", ["1"])
1
10
11
12
13
14
15
16
17
18
19

Future versions will likely simplify syntax to make it easier to write scripts and introduce a sh to hsh converter. I also plan to add pure Haskell tools for some common shell-ish things that one could do in Haskell.

Usenix

Well, we’re back from the Usenix ’06 Annual Technical Conference. Overall, a very nice conference. This is the first Linux/Unix conference I’ve been to since the old LinuxExpo (NOT LinuxWorld) events in the late 90s.

I must say it was quite fun to be around so many intelligent *nix folks. I learned quite a bit, and learned how much I had in common with some (and how little with others). A very nice social at the New England Aquarium Friday night.

Some very interesting speakers, too, with lots of experience to share. I’m glad I was there.

I have only one main complaint about Usenix — they tried to cram too much into too few days. The conference sessions ran till as late at 6:45PM, with BoFs after that. That left almost no time to see anything of Boston and meant that very few people could actually stick around for all the BoFs. Next year, they should use more days and schedule fewer things in the evenings.

The highlight of the trip, though, wasn’t Usenix at all, but instead getting to meet some Boston-area Debian folks Saturday night. Lots of fun, and Mako is as crazy in person as he looks online :-)

Our train trip in each direction was nice, too.

More to come…

Dear AT&T: Please install a telegraph in my home…

I just read the absolutely hilarious account of a call to AT&T asking them to install a telegraph line. The even funnier part is that nobody at AT&T seemed to realize that he wasn’t talking about a telephone. Or even knew what AT&T stands for.

While at ZUG, I also read the very funny story about impersonating Michael Jackson by getting a credit card in his name, complete with al sorts of media coverage.

Why I Like HP

I’ve been managing servers professionally for some years now. Support is one of the most important things when you are managing computers for work. You don’t need support to help you out with a printing problem or an e-mail problem. You need support because every minute the machine fails to power up, your company may lose twice the value of the entire machine. Or even more.

My first day job managing servers involved Dell hardware. What a nightmare. I’ve never had a good experience with Dell support, ever.

First off, Dell support never puts me straight through to an intelligent support rep. I don’t care whether I get to the Indian call center or someone in Texas. The first support person I speak to at Dell has less computer aptitude than my grandmother. One conversation I will always remember went like this:

Me: We have a disk in our array that went bad on our Linux server. The red light on the disk itself is on. Please send us a replacement.

Dell: Have you tried rebooting?

Me: No. This is a production server. The reason the disks are redundant is so I don’t HAVE to. Besides, the light ON THE MACHINE ITSELF is on.

Dell: Ah, OK. Have you run scandisk?

Me: No. This is a Linux server, as I told you, and scandisk wouldn’t see a problem anyway since this disk is in an array and the array is still up.

Dell: OK, great. How about you download the diagnostics .exe from our website…

Me: Can’t. We don’t have Windows on this machine. You did say you support Linux when we bought it.

Dell: Ah. Can you right-click on My Computer…

Me: NO. This runs Linux, and the BAD DISK LIGHT ON THE MACHINE IS ON.

Dell: Ah, OK. I wonder if the problem really is that you have a bad disk.

Me: Could be!

Our first HP server purchase happened to be at a time when HP had undercut Dell by several thousand dollars. I liked the hardware, but it wasn’t anything that much more special than Dell.

But what I really like is the support. I haven’t had to call HP support often, but when I do, I am almost always speaking to a live, experienced person within 5 minutes.

With only one exception, all the HP support people I’ve talked to have been very experienced. They all sound like they’ve been working with HP hardware since the late punched card era. They know what is going on and assume that I do too. The HP people don’t make small talk (it *really* ticks me off when someone obviously in Calcutta or something asks me about the weather in Kansas, because you *know* they are reading it off a screen and don’t care). But that’s fine. I’m not calling them to talk about the weather, I’m calling them because my server is down.

We had a bad disk in an array on a HP server once. That conversation went more like this.

HP: Server support. Serial number please?

Me: [gives it to them]

HP: OK. What’s the problem?

Me: The array dropped a disk. The failed disk light is on and the controller logged a disk error.

HP: OK. That’s a 146GB SCSI, right? 15KRPM or 10K?

Me: 15K.

HP: OK. Is 1PM tomorrow good to send out the replacement?

Me: Fine.

HP: OK, your case number is xxxxx. Can you give us directions to your location?

Me: Sure…

So recently we got in our MSL4048 tape library. A very nice unit. And faster than most *disks*. 48 Ultrium3 tapes — 400GB native each — very nice. And a barcode reader built in.

So anyway, one small problem. When you open up a magazine to put tapes in, you can close the unit back up. It says “scanning”, but it doesn’t notice that we’ve changed tapes until we give it a command on the operator panel (yes, this tape drive has a LCD screen built in). This can be worked around, but is annoying and is just waiting to cause confusion. Plus it’s not how it should work.

So I call HP support yesterday.

Turns out this MSL4048 is a brand-new unit. Had only been on the market a few weeks. Our support rep has never seen one or taken calls about one, and they haven’t even given him all the HP technical docs yet. But no matter, he is willing to try to help us out.

He calls me back twice yesterday with tips and questions after speaking to colleagues. He asks intelligent questions, doesn’t bother with the “are you sure you’re putting the tapes in the right way around” or the “is the power cord securely plugged in” crap, and generally doesn’t waste my time. He called me back about four times more today — they duplicated our setup in their lab, right down to the exact firmware version, but didn’t have the problem. Two of those callbacks were apologizing for taking so long, and explaining that they were learning about this machine as they went along. So a HP rep will be out to our location shortly.

Now THAT’S what I call service. No blaming it on someone else, no trying to make me do stupid troubleshooting things, and returning calls.

My *one* bad experience with HP was one time we put a new internal tape drive in the machine, and it was acting flaky. I got the only not-very-experienced HP rep I ever had spoken to that time, and they tried to blame Debian for what turned out to be a bad SCSI cable. (The symptoms weren’t very similar to what I’d expect for a bad SCSI cable, and the cable had been working fine.) Oh HP, you donate to Debian — why don’t you support your hardware under it?

(In fairness, that is the ONLY time they have flinched when I said I run Debian, though it does make them hesitate sometimes)

Bacula

Lately we’ve been looking at backup solutions at work.

And I’ve got to say that Bacula is looking downright awesome. It’s GPL’d and it has just about every feature a person could ask for.

I am a complete Bacula newbie. Today, after using Bacula for a total of about 30-60 minutes, I added the first client machine to my Linux test box. The client machine was running the Windows bacula client. It took about 10 minutes to install and configure the client and the server. And both backup and restore worked perfectly the first time. Nice. Setting up a *nix client is even easier.

I’ve been using Amanda for many years at home and at various workplaces. Looks like we’re going to be switching.

We’ve also ordered an HP MSL4048, a 48-tape LTO3 library with barcode support. Each tape has a native storage capacity of 400GB. Should be nice when it arrives. With that library and Bacula, we should be able to back up all our servers using a single backup system. And both our Windows and Unix people can manage the system, including running restores to any machine, from any authorized console machine.

Debian From Scratch 0.99.0 Is Out

At long last, I’ve finally updated Debian From Scratch (DFS). For those of you not familiar with DFS, it’s a single, full rescue CD capable of working with all major filesystems, LVM, software RAID, and even compiling a new kernel. The DFS ISO images also contain a small Debian mirror subset that lets you use cdebootstrap, along with the other utilities on the CD, to perform a manual, “Gentoo-like” installation. It also serves as an excellent rescue CD, with a full compliment of filesystem tools, backup/restore software, and a development environment complete enough to build your own kernels.

DFS also refers to dfsbuild, the tool that generates DFS images. dfsbuild is available as a Debian package. dfsbuild is designed to make it trivial to build your own custom DFS images. You can have your own set of Debian packages on your images, your own kernels, etc. Unlike many other systems, you can go from the example dfs.cfg to a customized DFS build in just a few minutes, even if you’ve never used dfsbuild before.

Version 0.99.0 is a from-scratch rewrite and port to Haskell. You can read the full list of new features in the announcement, but the biggest is that it now supports standard Debian initramfs kernels in addition to ones that have enough drivers statically linked to be able to read the CD-ROM.

You can also download my DFS images or browse the docs online.