In a few days I’m going to update two of my computers. One of them (Athlon X2) used to run as a server with Ubuntu 9.04, the other one (Intel Core 2 Duo) was configured as a dual-boot system with Windows XP and Ubuntu 9.10. The Athlon will get a Ubuntu upgrade, the Intel will get Windows 7 and Ubuntu. Windows mostly for video and graphics work and things that don’t work in Ubuntu. Ubuntu for development and everything else.
Previously
When I set this system up for the first time a few years ago I tried to find a good solution to access Windows files and resources while I’m working in Ubuntu, and Ubuntu files and resources while I’m working in Windows. I wanted to avoid booting from one OS into another all the time. Once I experimented with virtual machines and configured Windows with two Hardware profiles (one for the physical hardware, one for the virtual hardware) and I was able to boot Windows regularly as well in a virtual machine when I was working in Ubuntu. I don’t remember doing the same in the other direction. It was an impressive (looking) solution but it I didn’t find it very useful in the end. If I needed Windows, I really needed it with all resources and all memory available. Graphics and Video in a virtual machine just wasn’t optimal. And considering how much time I would normally spend in one or the other OS working on the one or other project, I realized that it really will not hurt me to boot Windows or Ubuntu once or twice a day.
But I still wanted to find a good way to share files and documents across both platforms. A few years ago I used a single folder as a shared directory, but I quickly grew tired of having to copy files from and to this folder all the time. I wanted everything in one place, easy to access and easy to backup. I wanted my documents to share the same partition and folder in Linux as well as Windows. The first question was which file-system to use for this drive D:\. Given the ext2-IFS driver for Windows I decided to use ext2 for this partition, native to Linux whenever I work there, and accessible from Windows when I work there. So I set up the following:
- Disk 0, Partition 1 (78GB NTFS) — C: for Windows and software
- Disk 0, Partition 2 (74GB ext2) — Linux
- Disk 0, Partition 3 (28GB ext2) — I: incoming partition for downloads, unsorted stuff
- Disk 0, Partition 4 (6GB swap) — Linux Swap
- Disk 1, Partition 1 (300GB ext2) — D: user-/home directories, web-server, projects, both for Windows and Linux
Both Linux, D: and I: used the ext2-file system, only C: is an NTFS partition. When I worked in Linux I had native access to these partitions mounted in /home and /incoming. When I worked in Windows, I had access to them with drive D: and I:. I figured that a driver would be more likely to fully support an open source file system than a driver that had to reverse-engineer a closed-source file system. I set this system up a year or two ago, and it’s been working pretty well for me since then. After a while and a few Windows crashes, however, I found ext2 with some corruption I had to fix manually. I’m not sure if anything or how much got lost in the process, but I didn’t like this at all.
Ext File System in Windows, or better NTFS in Linux?
When I was surfing the web a few days ago to find some thoughts on file-systems and recommendable backup-software I stumbled on a discussion about this issue. Somebody asked the same question: Is it better to use ext2 and the ext2-IFS driver on Windows, or NTFS and FUSE/NTFS-3g on Linux?
One of the answers made a pretty good point and confirmed the issue I encountered myself: If Windows crashes it can corrupt ext2/3 partitions after a while. Linux, however, doesn’t do the same with NTFS. Without fsck you won’t be able to check or repair ext2/3 filesystems in Windows, but Linux on the other hand has ntfsfix if you need to fix an NTFS partition. NTFS-3g (which I don’t think existed when I was first looking into this a few years ago) is supposed to handle NTFS better than Windows with ext2-IFS can handle ext2/3.
I’m wondering if I should reconsider my configuration and just keep all Windows files on a single NTFS partition C: and mount it as a /windows folder in Ubuntu. That won’t be a problem at all. But what should I do about Linux documents when I work in Windows? I’m not sure I would want to mount the Linux home with ext2-IFS again. What are your experiences and preferences? What route would you take if you needed a shared Windows/Linux system?
Cross-Platform Network Backups
Which tools would you recommend to create automated backups of Windows as well as Linux files, perhaps even across the network? I don’t want to create drive images but run quick frequent file backups for everything that changed in a day. I’d love to be able to do this automated, across the network, using the Athlon as a backup server, and each household computer as a backup client regardless of the operating system.
Originally I wanted to back things up on a remote site and wrote a script to gpg-encrypt zipped archives of files I wanted to save. But the web hosting providers don’t like it when hosting space is used as a backup drive. And providers that offer storage space for backup purposes charge ridiculous amounts of monthly fees for this service. I have about seven Gigabyte at GMail, I wonder if Gmail could be used as a backup drive for important things, and how safe and reliable it would be in terms of data-loss.
Anyway, if you stumble across this and want to share some ideas or best practices, go ahead! Every thought is appreciated. :)
Update: Voted for Simplicity
Update: I finally entered the 21st century by installing Ubuntu 10.04 and Windows 7 on PC #1 and Ubuntu 10.04 on PC #2. I installed 64-bit versions on both machines. I decided to not overconfigure the dual-boot system and went with the easiest route: Windows (NTFS) on one harddisk, Ubuntu (ext4) on a second. If I need any files from Windows when I’m in Ubuntu, I will just mount the Windows partition. If I need files from Ubuntu when I’m in Windows, well.. then I will just deal and copy everything I need to the Windows partition before I start Windows. I want to avoid the ext2-IFS driver. I also don’t know if or how well it could handle the ext4 file system. A clear separation will also make it easier for backups.
Amanda Network Backup
I found Amanda Network Backup and Zmanda which might be just what I was looking for to backup all systems across the network to my AMD server. It also supports cloud backups to Amazon S3 which might be worth for a smaller subset of the most important files. If I keep the volume small enough it could be very affordable at $4.95 monthly licensing fee plus $0.20 per GB data transferred in/out and $0.20 for backup storage. When I upload and store, say, 2 GB it should be $5.75 per month unless there are some hidden costs. And 2 GB is more than enough for the most critical data that would have to survive a disaster.
Do you know and use Amanda/Zmanda? What are your experiences with it? I installed it and went through a painful configuration procedure, but I finally made it work and was actually able to run a backup across the network. However, after a few gigs it appeared to have crashed. I don’t know if the network was overwhelmed or if I made a mistake with the configuration. I will have to read more about it. I found it a bit cumbersome to configure, but I think once it’s done properly I will never have to touch the configuration again. So this may be worth the effort. What’s most important though: I need to make sure these backups can be restored as safely, easily and quickly as possible when needed. As soon as I know more I will write a separate post about Amanda/Zmanda.