- How to write to NTFS in Linux-2.6
- In short
- Create an image in Windows
- Reboot to Linux
- Testing NTFS write support
- Compiling the NTFS driver
- Writing
- Reboot to Windows
- Verify the filesystem
- Open the archive
- Ubuntu Documentation
- Using the File Manager
- File System Differences
- FAT32
- Configuring /etc/fstab
- Preface
- Automatic Configuration
- Manual Configuration
- Other Resources
- Footnote
How to write to NTFS in Linux-2.6
Here are the steps to be done in order to transfer files from a Linux filesystem (JFS/XFS/Reiserfs/EXT3/whatever you prefer) to a Windows filesystem (NTFS).
NOTE: THIS ARTICLE IS MOSTLY OBSOLETE NOW (2010), DUE TO THE EXISTENCE OF A HIGH-QUALITY READ-WRITE NTFS DRIVER, NTFS-3G. IT IS STILL PROVIDED FOR POSTERITY. I WROTE THIS ARTICLE ORIGINALLY IN 2006.
In short
- Create a dummy file in Windows (big enough to have room «inside» for the files you wish to import)
- In Linux, copy files into that file (creation of new files and/or resizing existing files is not supported)
More detailed instructions here:
Create an image in Windows
For this reason, you have to use Windows to create an image you’ll write over.
Say, you’re going to copy 5 gigabytes of files to your NTFS partition. You must create a 5 gigabyte file to your NTFS partition, using your Widows. In Linux (or any unix system in general), you would do it with a command, but in Windows, it’s not that simple.
You can create it in any way you want ― the contents of the file do not matter. If you can’t think of anything, I recommend using WinRAR to compress a couple of anime episodes together.
When you have created the big file, rename it as something.tar.gz. Ensure the filename ends with .tar.gz (dot tee ay ar dot jee zed).
The file may be bigger than the source files together, but it must not be smaller.
Reboot to Linux
If your subject is an EXT2 / EXT3 filesystem, you can google for a shareware Windows program that lets you read those filesystems in Windows. For the other ones mentioned, there’s no such choice.
So, ironically, in order to mount a JFS/XFS/Reiserfs/whatever filesystem to copy files to Windows, you must boot into Linux.
In order to boot into Linux, you need to have Linux installed somewhere. I won’t cover Linux installation & starting in this document ― I’ll just assume you have it somewhere. If you’re lazy and lucky, a non-permanent Linux installation such as a «livecd» is probably enough.
Testing NTFS write support
The tricky part is that your NTFS driver in Linux must have been compiled with WRITE SUPPORT — otherwise it won’t write anything.
Try mounting your NTFS partition (remember to be root!): Replace /dev/hda5 with your partition location. If the mount command fails and you didn’t type anything wrong, you don’t have NTFS support at all. Do a modprobe ntfs and try again. If it still fails, you need to compile the NTFS driver. See below.
If the mount command worked without problem, next do this: If the line you get contains «rw,«, you can skip the following chapter and read about how to write.
If the line contains «ro,«, mount cheated you; there is no NTFS write support in your kernel. You need to rebuild the driver.
If the line doesn’t contain either of those, you probably did something wrong or your /proc filesystem is not mounted or it is something that I can’t diagnose within one sentence.
Compiling the NTFS driver
Notes:
- If you use NTFS as a module, you need to handle the same version of kernel source as is the kernel you’re currently running (type uname -r to see it).
- If you use a «livecd», you might experience great obstacles in attempting to affect its configuration.
When you’re in the menuconfig (make menuconfig),
- go to File systems -> DOS/FAT/NT Filesystems
- ensure there’s a M or a * in NTFS filesystem support
- ensure there’s a * in the NTFS write support
Then exit, exit, exit and answer Yes to the «do you want to save» question.
Recompile your kernel (you should know how) and install the modules.
If you compiled NTFS as a non-module, you need to reboot now.
After done, unload the old NTFS driver: If it complains it’s busy, unmount all NTFS mounts (umount -a -t ntfs) and try again.
Then load the new NTFS driver: Now go back to the mounting test.
Writing
For the sake of clarity, we’ll use now these assumptions. Adjust the instructions in your mind if these are not exactly your cases:
- The files we’re copying are: /mnt/b1/anime/FMA/*.avi
- The 5 GB file in NTFS filesystem we’re writing into is: /mnt/d/Animet/FMA.tar.gz
Use this command: This should work. Did you get error messages? Sorry, I can’t help you there. You’ll have to resolve it yourself.
So what happened?
- We created a .tar.gz archive and passed it to the standard dd program which wrote it into the NTFS file.
Note that using dd, and specifically its conv=notrunc option is important here. The normal ‘ ‘ ways of redirecting the stream don’t work, because NTFS writes rely on the file size not changed.
Reboot to Windows
Verify the filesystem
Open the archive
Page created by Joel Yliluoma.
E-mail address: k bi _ sq g0 wi IAj t@ t ik H i. RQ fi
Thanks to Paul Jackson for the conv=notrunc information.
Источник
Ubuntu Documentation
Ubuntu is capable of reading and writing files stored on Windows formatted partitions. These partitions are normally formatted with NTFS, but are sometimes formatted with FAT32. You will also see FAT16 on other devices.
Ubuntu will show files and folders in NTFS/FAT32 filesystems which are hidden in Windows. Consequently, important hidden system files in the Windows C:\ partition will show up if this is mounted. Since it is all-too-easy to accidentally modify or delete files which are essential for Windows, it is advisable to mount your Windows C:\ partition as seldom as possible, preferably not at all, or read-only by configuring /etc/fstab (see below). If you have data which you want to access regularly from both Windows and Ubuntu, it is better to create a separate data partition for this, formatted NTFS.
Whether you write to your Windows C:\ partition or a shared NTFS data partition, be aware that if you are using Windows 7, and Windows 7 is in a hibernated state when you write to the NTFS partition from Ubuntu, you will lose all your changes. This is because when Windows 7 is hibernated it writes the system state to a file stored on disk and restores from that file when the system is re-awakened, thus restoring the whole fileystem to a state before any changes made from Ubuntu. In Windows 7 you must avoid using hibernation. With Windows 8, the situation is more complex in that, by default, it uses a hybrid hibernation/shutdown when you shut the system down. Any changes made by Ubuntu will be lost when you reboot into Ubuntu.
With both Windows 7 and Windows 8 (when installed to a legacy mbr partition table) there is usually a 100-200MB boot partition labelled «SYSTEM». Do not mount it — you do not need to. Similarly it is highly advisable to leave any recovery partitions unmounted.
Using the File Manager
For those using a desktop version of Ubuntu, or one of its offical derivatives, the easiest and quickest way of mounting NTFS or FAT32 partitions is from the file manager: Nautilus in Ubuntu, Thunar in Xubuntu, Dolphin in Kubuntu and PCManFM in Lubuntu. Simply look in the left pane of the file manager for the partition you wish to mount and click on it — it will be mounted and its contents will show up in the main pane. Partitions show with their labels if labelled, or their size if not.
Unless you require your Windows partition — or a NTFS/FAT32 partition for data shared with Windows — mounted every time you boot up for one of the reasons given below, mounting from the file manager in this way should suffice.
If you are using a Wubi version of Ubuntu and you wish to browse the host partition, you do not need to mount it — it is mounted already in the «host» folder. Click on «File System» in the left pane of the Nautilus file browser and then open the host folder which you will see in the main pane.
File System Differences
For a more in depth analysis, see LinuxFilesystemsExplained, but here are some basics:
- Windows 7, Vista, XP, 2000, older NT systems, and Windows Server 2003 and 2008 are formatted with NTFS. In rare cases, OEM manufacturers have pre-installed Windows XP and Windows 2000 to FAT32 filesystems.
- Older versions of Windows such as Windows ME, 98, and 95 are formatted with FAT32.
- Flash drives, such as a USB thumb drive or a camera’s flash card are typically formatted as FAT16. Some Flash drives are formatted with Microsoft’s proprietary exFAT file system.
In Windows, you can check which filesystem your partition is formatted with by right-clicking the partition in Windows Explorer and selecting Properties. In Ubuntu, run from terminal:
The ntfs-3g driver is used in Linux-based systems to read from and write to NTFS partitions.
NTFS (New Technology File System) is a file system developed by Microsoft and used by Windows computers (Windows 2000 and later). Until 2007, Linux distros relied on the kernel ntfs driver which was read-only. The userspace ntfs-3g driver now allows Linux-based systems to read from and write to NTFS formatted partitions.
The ntfs-3g driver is pre-installed in all recent versions of Ubuntu and healthy NTFS devices should work out of the box without further configuration. In Ubuntu versions 11.10 and later the ntfs-3g package included the functionality previously provided by ntfsprogs. Trying to install ntfsprogs in 11.10 (and possibly in 12.04) will cause the package-manager to ask if you wish to remove ntfs-3g. Users who have installed ntfsprogs and failed to notice the message from the package manager have unintentionally uninstalled ntfs-3g, after which the system falls back to the read-only kernel ntfs driver. Loss of the ntfs-3g driver for similar reasons has also been reported when upgrading from 11.04 to 11.10. If you are experiencing inability to write to a NTFS formatted partition or device, check whether or not the ntfs-3g package is installed.
FAT32
The vfat driver is used in linux to read and write FAT32 and FAT16 partitions.
Configuring /etc/fstab
Preface
If you require one or more of your Windows partitions mounted automatically during bootup, it is necessary to add one line to the file /etc/fstab for each partition that is to be mounted. Some reasons for mounting partitions by means of /etc/fstab, rather than relying on the file manager, include:
- Convenience.
- Where more than one user account is in use during a session. Partitions mounted from one user account by means of the file manager are not accessible to the other account(s).
- Where libraries have been set up in applications such as Banshee or Rhythmbox (for music) or Shotwell (for photos). If those libraries contain files on partitions mounted by means of the file manager, an error will occur in a subsequent session if the partition is not mounted first.
Where more advanced or special mount options are needed. Three working configurations for different needs are given below, but anything more advanced is beyond the scope of this wiki page. The NTFS-3G manual gives a list of mount options suitable for NTFS filesystems.
Automatic Configuration
Although there are a number of GUI applications available from the Ubuntu Software Centre, none of these can be recommended at the time of this writing, unfortunately. They are obsolete and unmaintained and can all cause problems. Two examples are ntfs-config and PySDM. (PySDM is no longer in the repository with effect from 12.10.) If you find a recommendation anywhere for either of these applications, it is likely to be an old one, and should not be followed. At this time it is advisable to configure /etc/fstab manually.
Manual Configuration
First, you need to find the device locations of the partition(s) you wish to mount. Open a terminal and run:
For illustration purposes, an example output from a computer setup with a Vista/Ubuntu dual-boot and shared NTFS data partition is shown here:
The first three partitions, all NTFS, are the ones that concern us here. There are no FAT32 partitions. In this instance, all three NTFS partitions have partition labels, which makes it easier to identify the purpose of each. If your blkid output does not include partition labels, this means that the partitions do not have labels and you will have to determine which partition you wish to mount by another means. Of the three NTFS partitions, we are going to configure /etc/fstab with only the third, the Data partition. Partition /dev/sda1 is the OEM manufacturer’s recovery partition and should be left unmounted, or as described below. Partition /dev/sda2 is the Windows C:\ partition and is best not included in /etc/fstab for the reasons described above, or mounted read-only — see below.
You will now need to create a mountpoint for each NTFS partition that you wish to mount by means of /etc/fstab. In our illustration we are going to add one entry only for /dev/sda3. From a terminal:
In this case we have created a mountpoint with the same name – Data – as the partition label. You may use (almost) any string you wish.
Before editing /etc/fstab directly, it is a good idea to make a backup. From a terminal:
Now open /etc/fstab in a text editor with root privileges. In Ubuntu:
In Xubuntu or Lubuntu:
For a general-purpose read-write mount, add this line to the end of /etc/fstab:
Replace the UUID with the one relevant for your partition as shown in your blkid output. “519CB82E5888AD0F” will not work for you.
Also, substitute your mountpoint for “/media/Data”. In case you have a blank space in the name of the mountpoint you want to use like «New Volume» instead of «Data» located in «/media» use «/media/New\040Volume». The space character is created by using «\040» in the fstab.
You will also need to change the “locale=en_US.utf8” option to one suitable for your location and language if you are not in the USA. You can determine your locale with this terminal command:
Or for a list of all locales available on your system:
Now save your edited /etc/fstab and close the text editor. The partition(s) you have configured will be mounted the next time you reboot, but to mount them now:
Two special cases
Sample /etc/fstab lines are suggested for two special cases.
Option 1 — for mounting read-only access. For example, this would be suitable for mounting your Windows C:\ partition if you need to access it. Modify the line below with your UUID and mountpoint:
Option 2 — to ensure that Ubuntu does not mount the partition and also disables graphical mounting from the file manager. For example, you may wish to ensure that recovery and system partitions are never inadvertently mounted and do not appear in the file manager. In this case you need to create a mountpoint in /mnt, not /media. Modify the line below with your UUID and mountpoint:
Note: with these mount options, the partition does not appear in the Devices list in the left pane of Nautilus (the Ubuntu file manager), but it still appears in Dolphin, the Kubuntu File Manager. Clicking on the partition in Dolphin causes the display of an error message. This solution is less elegant in Dolphin than with Nautilus, but the desired effect is achieved — the partition cannot be mounted.
If you need to revert to the original configuration:
Substitute your mountpoint in the second line.
FAT32 Partition
FAT32 partitions are mostly only found in older systems. If you are creating a partition to be used for data to be shared between Windows and Ubuntu, it is better to choose NTFS. Should you have a FAT32 partition which you need to mount using /etc/fstab, this will work to mount it read-write:
Replace with the UUID that blkid reveals for your partition, and adjust for your mountpoint. These mount options will make all files in the partition executable. If you have other needs, you will need to modify the options, but this is beyond the scope of this wiki page.
Other Resources
Footnote
This page has recently been subject to significant revision. If you have any comments about current content, or suggestions for further additions or edits, please head over to this Ubuntu forums discussion thread so that we can co-ordinate our efforts.
MountingWindowsPartitions (последним исправлял пользователь jeremiah-l-marks 2014-11-16 06:31:46)
The material on this wiki is available under a free license, see Copyright / License for details
You can contribute to this wiki, see Wiki Guide for details
Источник