Skip navigation

Very easy:

dd if=/dev/SOURCE of=/dev/DESTINATION bs=1M

I’ve found in my experience 1M tends to be a solid “bs” number; lower than that and the copy rate is slower, higher than that doesn’t give much performance gain (if any). The SOURCE should be the hard disk that has the image you want to keep and clone, the DESTINATION should be the hard disk that is to be cloned and receive the image on the SOURCE.

This will copy, bit-for-bit, everything on one hard disk to another. Useful for copying over complex workstation/server configurations on machines with the same hardware.

This is described on this mailing list, but here’s the short of it in case that page ever dies:

If /dev/mtdblock0 doesn’t exist, do the following

mknod /dev/mtdblock0 b 31 0

Then do the following. The kernel modules can be enabled under Device Drivers->MTD. Make sure to get them all.

modprobe mtd # get this when enabling MTD
modprobe jffs2 # under Filesystems, Misc
modprobe mtdram # under MTD section
modprobe mtdchar # under MTD section
modprobe mtdblock # under MTD section
 
dd if=your.jffs2 of=/dev/mtd0
 
mount -t jffs2 /dev/mtdblock0 /your-mount-point

I’m not a particularly big fan of Facebook, but I recognize its usefulness in some ways, so I have an account. My brother (and a bunch of other folks I know) seem to be pretty addicted to the site, for reasons unknown to me. Maybe that’s the same reason I find keeping a Twitter account useless (no, I don’t have one).

So imagine my surprise when I sign in today and discover that I can’t find friends of mine from a certain city I’m visiting soon. Searching for said city returns a bunch of people, events, web results and other things of no relevance. Apparently Facebook thinks people would rather find new “friends” than search the ones they have.

After searching Google for some sanity-checking, someone had this link to share, which apparently is exactly what I wanted in the first place. Attempts to find this page from the Facebook interface were met with frustration and failure, until about 10 minutes later I found it under “Edit Friends”. Edit Friends? What?

Maybe I’m overthinking it, but why is searching your friends list under “Edit” and actual searching doesn’t search your friends? Did the use-case focus group goof up?

As part of a filesystem watcher program I maintain as part of a larger site, I need to obtain the ed2k hash of some files. Believe me when I tell you I have searched high and low for an Edonkey2000 hash algorithm in python. I’ve seen massive libraries that scared the bejesus out of me, but nothing clean, concise, and without external dependencies. Enjoy the below. It’s worth noting it’s just as fast as the C version.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import hashlib
 
def hash_file(self, file_path):
    """ Returns the ed2k hash of a given file. """
 
    md4 = hashlib.new('md4').copy
 
    def gen(f):
        while True:
            x = f.read(9728000)
            if x: yield x
            else: return
 
    def md4_hash(data):
        m = md4()
        m.update(data)
        return m
 
    with open(file_path, 'rb') as f:
        a = gen(f)
        hashes = [md4_hash(data).digest() for data in a]
        if len(hashes) == 1:
            return hashes[0].encode("hex")
        else: return md4_hash(reduce(lambda a,d: a + d, hashes, "")).hexdigest()

For the life of me, I can not get my desktop Linux to recognize (and thus charge or give filesystem access to) my Palm Pre. Apparently no one else on the Internet has this problem.

I’ve tried enabling low level usb debugging in the kernel, and I can see when I plug the device in:

usb 7-5.1.3: no configuration chosen from 1 choice

If I reboot the device, I see it automount for half a second during its “bootup” phase, having:

usb 7-5.1.3: configuration #1 chosen from 1 choice
sd 20:0:0:0: [sdf] Attached SCSI removable disk

But then it defaults to nothing once again. Works fine in Windows, which pains me to say. Works fine also when my computer itself boots up- Pre must negotiate with the hardware directly since the “charge” menu shows up… but once the Linux kernel kicks in, that’s all over.

It’s not a lack of power on the USB bus, I can trigger that error by other means, but it’s certainly not one of the log lines normally.

Ideas? I’m running out of my own.

My kernel: 2.6.31-gentoo-r6 SMP

EDIT: “Solution”: root into the pre. execute as root:

usbnet disable

/sbin/reboot