个人工具

UbuntuHelp:Partitioning issues

来自Ubuntu中文

Wikibot讨论 | 贡献2009年11月17日 (二) 20:19的版本

跳转至: 导航, 搜索

There are issues and caveats with regard to choosing a partition layout and choosing a tool to create such partitions on a new disk, or else to modify partitions on an existing disk. There are three aspects to this process: partitioning, formatting, and reformatting (with second OS installation). In general, these issues arise only when dealing with Windows installations, and how picky Windows installations and file system check operations can get when dealing with partitions made with non-Windows partitioning tools. The general rule here is simply use the Windows tools for all partitioning operations, and only use Linux tools to reformat their own specific partitions:

Basic steps

  • Fully create all partitions and format each with Windows tools ("diskpart" and "format" commands, or else the "drive management" gui), using NTFS and FAT32 as placeholder filesystems for Linux partitions, and don't use Linux tools to touch (and bork) the partition table.
  • Final-format all partitions for Windows with Windows tools, and use Linux tools (GParted) for formatting Linux drives/filesystems (ext3, ext4, ext2, swap, etc) only.

In specific terms

  • Use Windows partition tools to create all partitions for all systems as you want them, including Windows, Linux, Mac, and even Linux swap. (These will be used later).
  • Use Windows formatting tools to format all partitions, including what will become Linux partitions. Quick format Linux partitions as FAT32 or NTFS, if larger than 32 GB. (These will be reformatted later).
  • Format Windows partitions as NTFS - unless you are running Windows 98, which needs FAT32, or else or have some specialized technical issue that requires XP to run on FAT32 or some other configuration.
  • Use Linux formatting tools (commands within the partition editor GParted) to reformat Windows-created partitions to ext3, ext4, swap, etc. (or hfs+ for Mac OS X).

Linux is only adequate* for partitioning the partition table and only ample* for formatting partitions into drives. (Again, do not partition with Linux; unless it is an external drive that you are not going to run Windows from). Formatting FAT32 with Linux is perfectly OK, but use Windows tools to format NTFS partitions. This produces the best results, and the Linux NTFS-3G driver will be able to do any read/write operations to the NTFS drive.

Installing

  • install Windows first to the first primary partition. Linux can still be your "primary OS" even when installed to your last partition; just give it lots of drive space.
  • When installing Ubuntu and the partition selection tool comes up, use the "specify partitions manually (advanced)" mode and manually select the partition you want. The first "side by side" installation option sounds seductive, but threatens to use dubious processes like automated NTFS resizing, which can bork the Windows partition. Manual selection insures that you are just formatting the already existing partition, and not messing with the partition table, which you should have already finalized with the Windows tools.
  • If you want Ubuntu/Linux to be your "main OS," just make sure its at the top of your GRUB boot menu at startup. This is the default Ubuntu GRUB install anyway; using another OS as the top requires editing your /boot/grub/menu.lst with, e.g., nano:

sudo nano /boot/grub/menu.lst or some other text editor like vi. With nano, use 'control + k' to cut (multiple lines) and 'control + u' to paste the lines of code in the menu to the order you want.

Why partition?

The main issue with partitioning is understanding why it's done: 1) to separate replaceable (and breakable) system files from irreplaceable personal files or business data, 2) to use multiple different operating systems on the same machine and choose which to boot into through a boot loader like GRUB, or 3) to create swap space which Linux OSes use as virtual memory (Windows just uses a swap file on its system or otherwise fast and writable drive). But the historical reasons for partitioning itself are not always relevant anymore: 1) Partitioning for sake of separating system from data, once a major issue with malfunctioning OSes, is mitigated by the advent of LiveOSes on removable and easy-access media such as CDs, DVDs, or USB drives. System crashes are a pain, but data recovery is much easier than it was just a few years ago. LiveOSs on media drives are free to download, quick to burn, and can easily mount and access broken system partitions to retrieve wanted files and move them to a backup drive. And attachable (USB) storage drives are likewise ample and easy to use. (It's a good idea for anyone with a computer to have a good LiveCD and an ample-sized USB drive handy, and to learn how to use them to mount drives and copy files). 2) The need to run multi-boot systems is mitigated due to the advent of virtualization and free virtualization tools like Sun's VirtualBox such that running a virtual Windows OS on an Ubuntu system is mostly a breeze. The caveat here is that one should limit their usage of Windows to just those applications which absolutely can't run on their Linux system (considering also any similarly-functional Linux applications) or else with Wine emulation. 3) Partitioning to create swap space is unnecessary since systems are much faster than before, Linux runs light and efficiently, and lots of fast RAM is quite cheap.

Linux is the main OS, even if it isn't

Linux installs can work around Windows' peculiarities gracefully and without much difficulty. Its not perfect, but all co-existence with Windows issues are handled in Linux. Ubuntu, and most other UbuntuHelp:distributions since Xandros ($$) and Knoppix (the first "LiveCD") use easy to use (graphical, orderly), flexible, and completely functional installers that handle the most important aspects of most installs. (Though there is always room for improvement|Installer issues|Though there is always room for improvement). Consider also that Linux, and Ubuntu in particular, can run very well without a Windows partition at all, and if Win32 apps are required, then using UbuntuHelp:Wine covers ~30% of this need, and a virtual installation|Virtualization|virtual installation of Windows (from 98 to Win7) can deal with the rest. Virtualization has a few issues, but on current systems (+1.5 ghz, +1.2GB RAM), performance is quite acceptable.

Access to file systems

A secondary issue deals with Windows' limited access to non-Windows file systems. But this is less an issue due to the usage of FAT32 "transfer" partitions, Linux's ability to read/write NTFS and most other file systems, and free-to-use Win32 utilities for writing to ext2 file systems.

Drive plan

Planning a partition setup and getting it right is much easier than a) finding out something is wrong later (like not enough system drive space), b) using Linux partition tools to rework a system partition and finding out Windows does'nt like it, c) and then repartitioning (from scratch) the right way with a Windows tool anyway. In general, separate disks which are used as storage (non-OS) partitions only can be dealt with more "flexibly," and this is still largely true when dealing with just Linux OS partitions. For consideration: A) system drives - in accord with what you want your system to do with it (multi-boot, rawdrive virtualization, shared drive, storage partitions). This is particularly true when you are limited on drive space; even a 40GB system drive can adequately house Ubuntu and Windows 7, but less space requires more care. B) storage drives - A storage drive is actually more important than a system drive, because the system drive can simply be reformatted (assuming your /home/* director(ies) are backed up). C) Too many partitions is not quite as useful as someone might think, and you may want to rearrange such drives. D) Rearranging/repartitioning a drive usually means backing everything up, which is not easy to do if you are dealing with a large drive with lots of data.

File systems

If you need a 'universally writable' drive so that Win, Mac, and unix can share its files, there are issues 1) NTFS is the main consideration, but its proprietariness and Window's peculiar usage of these drives means that Linux doesn't quite work perfectly with it. 2) Reading/writing NTFS - The free NTFS-3g driver is a recent development that works with Linux and Mac OS X systems to read and write files on NTFS partitions quite well. It was not long ago that writing to NTFS from Linux was a particularly risky operation. 3) NTFS tools - The major issue is that NTFS partitions run best when created with Windows partition tools (diskpart), and (usually) when created with Windows formatting tools (format). Linux utilities for dealing with NTFS file systems are incredibly flexible, clever, and useless. They often raise disk errors with Windows, such that running Windows' checkdisk utility (from Windows) is necessary just to make the drive readable again. This is less true with non-system storage partitions, but errors on such drives mean that data may be lost, so care must be taken. 4) the FAT32 file system is the historical choice, but its size limitation (32 GB max) makes it quite small for today's standards. The recently created exfat file system has no such limitation, but is not commonly used. 5) Repartitioning and resizing are particularly important issues, as they involve dealing with partitions that already have data on them. Backing up such drive partitions is highly recommended, but not always a possibility. And in any case, careful advance planning and using the right tools is better than trying to rework a drive's partition table after the fact.

Ubuntu partitioning issues

GParted is a wonderful tool, but it has certain issues. For one, it can take forever to read a large drive, or a drive with a large number of partitions on it. Compare with qtparted (no longer in repository) which can take just a few moments to read all disks, offering a choice of which disk and its partitions to deal with. Starting GParted from the command line and specifying the disk can help, but it's still slow: sudo gparted /dev/sdx // where x is a drive letter a, b, c, etc. The second issue deals with Ubuntu's pesky automount feature: It even kicks in while doing partitioning operations, such that as soon as an operation is performed, it remounts all partitions. This is pesky, but simply unmounting each of the drives. In Gnome, right click on each of the resurrected drive icons (on desktop or in the file manager and selecting "unmount drive." In KDE, use kwikdisk (which loads into the system tray) or kdiskfree and unmount them from there. Even with these issues with GParted and Gnome/Ubuntu, automount is a beautiful thing, and makes the mounting of new drives easier than even Mepis, and almost as good as Windows (though Windows can't really deal well with anything but NTFS and FAT).