Sharing home directory between windows and linux

Hi,
What is the best / some good ways to share a home directory between Linux and Windows? I’m running OpenSUSE 11.2 and Windows XP SP2. I have a Linux home directory on an ext3 partition; ideally I would like to use that as my home directory for Windows as well. I know this topic has been covered before on the Internets but it seems somewhat complicated / risky and I would like input before taking any steps.

Problematic. It’s a bit of a one way street
Better to have a backup NTFS partition which will sync the two

I have found the various utilities that supposedly give access to ext2/3 partitions from Windows unreliable and wouldn’t recommend that approach. Synchronising the NTFS with an ext2/3/4 partition using Synkron or some other rsync-based app is a possible solution, as is a Samba share.
In the long run, the best solution is probably to abandon dual-booting and run Windows from a Virtualbox. Much quicker to switch, and direct access to a shared /home partition for the Windows apps.

Consider what data it is that you want to share. Much of the data is not shareable regardless of the file system because that data cannot be read or is not usable by programs on the other OS. For example, email and browser data and program control files, much of which are application program dependent not just OS dependent.

If the shared data is static data such as documents and pictures and videos, then that data can be on an NTFS partition with the partition or folders within, symlinked to the linux home partition. So two different data stores but the separation is transparent to the user. But keep in mind that the linux NTFS driver does not journal, and that Windows maintains files in each partition for system recovery and configuration. So even with static data, it is possible for the data to get out of sync especially if the data store is being written to frequently from both OS’s.

IIRC there are applications on the linux side which use an rsync back-end on a timer to synchronize two data stores (keeping in mind again though that an NTFS partition will not be journaled). I’m not aware of a Windows app which can do the same with ext3.

These are generalities. Again, the first step in deciding on any shared data management strategy is to evaluate all the data involved, where the actual touch points are and the associated requirements, and then work into which tools fit that scenario the best.

Thanks for the replies. I’m interested more in sharing documents like pictures and videos than browser profiles.

I also have found that the utilities to give access to ext2/3 from Windows don’t work. For example, the IFS driver from Ext2 IFS For Windows allows my windows installation to map my ext3 partitions, but it sees them as unformatted and can’t access the data.

If the shared data is static data such as documents and pictures and videos, then that data can be on an NTFS partition with the partition or folders within, symlinked to the linux home partition.

This sounds like my best option. I don’t know if I know how to do that but I can research it. In this scenario, I would have a directory in my ext3 /home that actually points to /windows/dataToShare ? If I am understanding this correctly, this would only work from within my linux installation, correct?

I’m not sure that a synchronizing solution is what I’m after either, as one of the reasons I’m interested in sharing the data is to save space so I don’t end up with multiple copies of the same things on different OSs.

You need to edit a file called fstab
FSTAB - Editing Manually - openSUSE Forums

If you open a terminal become su and do this

fdisk -l
cat /etc/fstab

Post result of each.


# fdisk -l

Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x89d189d1

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1       15848   127299028+   7  HPFS/NTFS
/dev/sda2   *       15849       19063    25824487+   f  W95 Ext'd (LBA)
/dev/sda3           19064       19457     3164805   82  Linux swap / Solaris
/dev/sda5           15849       17126    10265503+  83  Linux
/dev/sda6           17127       19063    15558921   83  Linux


# cat /etc/fstab
/dev/disk/by-id/ata-TOSHIBA_MK1646GSX_48PLT2XNT-part3 swap                 swap       defaults              0 0
/dev/disk/by-id/ata-TOSHIBA_MK1646GSX_48PLT2XNT-part5 /                    ext4       acl,user_xattr        1 1
/dev/disk/by-id/ata-TOSHIBA_MK1646GSX_48PLT2XNT-part6 /home                ext3       acl,user_xattr        1 2
/dev/disk/by-id/ata-TOSHIBA_MK1646GSX_48PLT2XNT-part1 /windows/C           ntfs-3g    users,gid=users,fmask=133,dmask=022,locale=en_US.UTF-8 0 0
proc                 /proc                proc       defaults              0 0
sysfs                /sys                 sysfs      noauto                0 0
debugfs              /sys/kernel/debug    debugfs    noauto                0 0
devpts               /dev/pts             devpts     mode=0620,gid=5       0 0

You can change the partition mounting if you wish, but as far as I can see, that isn’t necessary. This assumes you are using KDE:

Open Dolphin. Split the screen. On the left navigate down the /windows/C directory tree until you find your “My Documents” and “My Pictures”, etc. On the right, navigate to where you want to see these folders under your SuSE /home; e.g., you could create a “Documents and Settings” there or you could just plan to put each folder like “My Pictures” directly under /home/<user>. Then drag each folder from the left to the right; a pop-up will ask if you want to move/copy/link - select link and it will create a symlink for you. Now, when you click on that folder name, you will go to that folder in the Windows partition.

Just bear in mind that any data you write to the Windows partition will not be journaled. Should the system crash, data just written may not be recovered upon reboot, whether into SuSE or into Windows. This typically is not an issue, but you should be aware of it.

Using either of these, open a terminal and enter: depending if you use kde or gnome

kdesu kwrite /etc/fstab
gnomesu gedit /etc/fstab

Change as shown
Save and reboot
Try writing to windows
If that fails let me know

May be stating the obvious here, appears that we are working two separate issues. One is how to setup up the sharing of Windows data. The other is how to ensure that the Windows partition is writeable from openSUSE.

I agree

My initial reading of the OP’s question was he/she wanted one partition that could be used for user data by both OS’s.
My suggestion is use Linux with it’s /home
Have a NTFS partition which is essentially a copy of /home, setup windows to use this for all your windows user files.

Yes, I suppose this is two separate issues - read / write to NTFS from OpenSUSE, and read / write ext3 from Windows XP. I haven’t tested writing to my NTFS partition from OpenSUSE yet. Reading is fine so if the NTFS write isn’t supported, that’s probably a separate issue.

It doesn’t really matter to me whether a shared home directory is on my Linux home partition or my Windows documents partition. Ideally I would like to use my Linux home partition, since my entire Windows installation is on one NTFS partition. This partition is out of space and a lot of the space is taken up by OS-independent files, so I figure it makes sense to use a shared home directory. I want to avoid data redundancy, as in having an NTFS partition that is a copy of home, because I’m trying to conserve space.

I also really want to have important documents on a separate partition than OS installations; I have my ext3 partitions set up like this but I want to get my documents off the same (NTFS) partition that Windows is installed on. I can’t repartition my NTFS partition into two separate partitions because I don’t have enough space.

I haven’t made a link to my /windows/C in my /home because I am able to access my windows partition from Linux; it’s not a big deal where in the folder structure it’s accessed from and I know I can quickly make a symlink in the future.

I guess the big question is then (assuming NTFS write support from OpenSUSE works when I try it) how to get read / write access to the ext3 partition from Windows. That might be beyond the scope of this board; if anyone does have suggestions that would be awesome. I mentioned before that I have not had success with tools that are supposed to provide this functionality for Windows.

To caf4926:
Before I make this change, what does changing


/dev/disk/by-id/ata-TOSHIBA_MK1646GSX_48PLT2XNT-part1 /windows/C           ntfs-3g    users,gid=users,fmask=133,dmask=022,locale=en_US.UTF-8 0 0

to



/dev/disk/by-id/ata-TOSHIBA_MK1646GSX_48PLT2XNT-part1 /windows/C           ntfs-3g    defaults 0 0


do?

Thanks everyone.

It will give you read write access no questions asked.

By default most Linux distros will err on the side of caution, so settings usually let you read only. Just so you don’t delete those important windows files!!

Linux writes to NTFS works well with the ntfs-3g driver. Again, just bear in mind that the driver does not journal. As far as writing from Windows to ext3, there are supposedly a couple of drivers for that, I have no experience with these (and I would be surprised if they journaled, either).

On XP the closest thing to /home is Documents and Settings, which like linux /home, contains a lot of files that can only be used by the native OS, and so these are not redundant. To share common data, you might carve out space from your ext3 /home for a separate partition which could be vfat or ntfs. It need only have those folders with data which are shared.

I wouldn’t want to rely on a “Windows to ext3/ext4” utility of I was in your situation, even if you can get it to work. Sounds like your NTFS drive is nearly full and you’re going to do much or most of your work in Linux. If true, I’d seriously recommend (again) getting away from dual booting and adopting the virtualisation approach. If for some reason that doesn’t fit the bill, perhaps because you want to retain Windows as your primary OS, then why not simply add another HD? They’re cheap enough these days.
Also think about how you’re going to go about backups. Again, I don’t know your situation but once you have your data split over various OS and file systems, backups become more complicated. Home partitions are usually backed up using one of many rsync-based solutions but rsync tends to get a little temperamental when symlinks and NTFS are involved. Assuming you already backup your Windows stuff somehow from Windows, how are you going to deal with your data split over the two OS and filesystems? Making things too complicated is asking for trouble.
Come to think of it, you could also virtualise openSUSE of course. It all depends on what’s going to be your main OS in future, and build any solutions around that is my advice.