免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 596 | 回复: 0
打印 上一主题 下一主题

Linux Partitions [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-06-18 21:22 |只看该作者 |倒序浏览
Partitions
A hard disk can be divided into several
        partitions.  Each partition functions as if
        it were a separate hard disk.  The idea is that if you have one hard
        disk, and want to have, say, two operating systems on it, you can
        divide the disk into two partitions.  Each operating system uses its
        partition as it wishes and doesn't touch the other ones.  This way
        the two operating systems can co-exist peacefully on the same hard
        disk. Without partitions one would have to buy a hard disk for each
        operating system.
Floppies are not usually partitioned. There is no technical reason
        against this, but since they're so small, partitions would be useful
        only very rarely.  CD-ROMs are usually also not partitioned, since
        it's easier to use them as one big disk, and there is seldom a need
        to have several operating systems on one.
1. The MBR, boot sectors and partition table
The information about how a hard disk has been partitioned
        is stored in its first sector (that is, the first sector of the
        first track on the first disk surface).  The first sector is the
        master boot record (MBR) of the disk; this is
        the sector that the BIOS reads in and starts when the machine is
        first booted.  The master boot record contains a small program that
        reads the partition table, checks which partition is active (that
        is, marked bootable), and reads the first sector of that partition,
        the partition's boot sector (the MBR is also
        a boot sector, but it has a special status and therefore a special
        name).  This boot sector contains another small program that reads
        the first part of the operating system stored on that partition
        (assuming it is bootable), and then starts it.
The partitioning scheme is not built into the hardware, or
        even into the BIOS.  It is only a convention that many operating
        systems follow.  Not all operating systems do follow it, but they
        are the exceptions.  Some operating systems support partitions, but
        they occupy one partition on the hard disk, and use their internal
        partitioning method within that partition.  The latter type exists
        peacefully with other operating systems (including Linux), and does
        not require any special measures, but an operating system that
        doesn't support partitions cannot co-exist on the same disk with any
        other operating system.
As a safety precaution, it is a good idea to write down the
        partition table on a piece of paper, so that if it ever corrupts you
        don't have to lose all your files.  (A bad partition table can be
        fixed with fdisk).  
        The relevant information is
        given by the fdisk -l command:
        [color="#000000"]        $ fdisk -l /dev/hda
       
        Disk /dev/hda: 15 heads, 57 sectors, 790 cylinders
        Units = cylinders of 855 * 512 bytes
       
           Device Boot  Begin   Start     End  Blocks   Id  System
        /dev/hda1           1       1      24   10231+  82  Linux swap
        /dev/hda2          25      25      48   10260   83  Linux native
        /dev/hda3          49      49     408  153900   83  Linux native
        /dev/hda4         409     409     790  163305    5  Extended
        /dev/hda5         409     409     744  143611+  83  Linux native
        /dev/hda6         745     745     790   19636+  83  Linux native
        $
       
2. Extended and logical partitions
The original partitioning scheme for PC hard disks allowed
        only four partitions.  This quickly turned out to be too little in
        real life, partly because some people want more than four operating
        systems (Linux, MS-DOS, OS/2, Minix, FreeBSD, NetBSD, or Windows/NT,
        to name a few), but primarily because sometimes it is a good idea to
        have several partitions for one operating system.  For example, swap
        space is usually best put in its own partition for Linux instead of
        in the main Linux partition for reasons of speed (see below).
To overcome this design problem, extended
        partitions were invented.  This trick allows
        partitioning a primary partition
         into
        sub-partitions.  The primary partition thus subdivided is the
        extended partition; the sub-partitions are
        logical partitions.  They behave like primary
        partitions, but are created differently.  There is no speed
        difference between them.  By using an extended partition you can now
        have up to 15 partitions per disk.
The partition structure of a hard disk might look like that
        in
Figure 5-2
.  The disk is divided into
        three primary partitions, the second of which is divided into two
        logical partitions.  Part of the disk is not partitioned at all.
        The disk as a whole and each primary partition has a boot sector.
Figure 2. A sample hard disk partitioning.

3. Partition types
The partition tables (the one in the MBR, and the ones for
        extended partitions) contain one byte per partition that identifies
        the type of that partition.  This attempts to identify the operating
        system that uses the partition, or what it uses it for.  The purpose
        is to make it possible to avoid having two operating systems
        accidentally using the same partition.  However, in reality,
        operating systems do not really care about the partition type byte;
        e.g., Linux doesn't care at all what it is.  Worse, some of them use
        it incorrectly; e.g., at least some versions of DR-DOS ignore the
        most significant bit of the byte, while others don't.
There is no standardization agency to specify what each byte
        value means, but as far as Linux is concerned, here is a list of partition
        types as per the fdisk program.
[color="#000000"] 0  Empty           1c  Hidden Win95 FA 70  DiskSecure Mult bb  Boot Wizard hid
1  FAT12           1e  Hidden Win95 FA 75  PC/IX           be  Solaris boot
2  XENIX root      24  NEC DOS         80  Old Minix       c1  DRDOS/sec (FAT-
3  XENIX usr       39  Plan 9          81  Minix / old Lin c4  DRDOS/sec (FAT-
4  FAT16 4. Partitioning a hard disk
There are many programs for creating and removing
        partitions.  Most operating systems have their own, and it can be a
        good idea to use each operating system's own, just in case it does
        something unusual that the others can't. Many of the programs are
        called fdisk, including the Linux one, or
        variations thereof.  Details on using the Linux
        fdisk given on its man page.  The
        cfdisk command is similar to
        fdisk, but has a nicer (full screen) user
        interface.
When using IDE disks,
        the boot partition (the partition
        with the bootable kernel image files) must be completely within the
        first 1024 cylinders.  This is because the disk is used via the BIOS
        during boot (before the system goes into protected mode), and BIOS
        can't handle more than 1024 cylinders. It is sometimes possible to
        use a boot partition that is only partly within the first 1024
        cylinders.  This works as long as all the files that are read with
        the BIOS are within the first 1024 cylinders.  Since this is
        difficult to arrange, it is a very bad idea to
        do it; you never know when a kernel update or disk defragmentation
        will result in an unbootable system.  Therefore, make sure your boot
        partition is completely within the first 1024 cylinders.
However, this may no longer be true with newer versions of
        LILO
         that support LBA (Logical Block Addressing).  Consult the
        documentation for your distribution to see if it has a version
        of LILO where LBA is supported.
Some newer versions of the BIOS and IDE disks can, in fact,
        handle disks with more than 1024 cylinders.  If you have such a
        system, you can forget about the problem; if you aren't quite
        sure of it, put it within the first 1024 cylinders.
Each partition should have an even number of sectors,
        since the Linux filesystems use a 1 kilobyte block size, i.e., two
        sectors.  An odd number of sectors will result in the last sector
        being unused.  This won't result in any problems, but it is ugly,
        and some versions of fdisk will warn about it.
Changing a partition's size usually requires first backing up
        everything you want to save from that partition (preferably the
        whole disk, just in case), deleting the partition, creating new
        partition, then restoring everything to the new partition. If the
        partition is growing, you may need to adjust the sizes (and backup and
        restore) of the adjoining partitions as well.
Since changing partition sizes is painful, it is preferable to
        get the partitions right the first time, or have an effective and
        easy to use backup system.  If you're installing from a media that
        does not require much human intervention (say, from CD-ROM, as
        opposed to floppies), it is often easy to play with different
        configuration at first. Since you don't already have data to back
        up, it is not so painful to modify partition sizes several times.
There is a program for MS-DOS, called fips
        ,
        which resizes an MS-DOS partition without requiring the backup and
        restore, but for other filesystems it is still necessary.
The fips program is included in most Linux
        distributions.  The commercial partition manager ``Partition Magic''
        also has a similar facility but with a nicer interface.  Please do
        remember that partitioning is dangerous.  Make
        sure you have a recent backup of any important
        data before you try changing partition sizes ``on the fly''.  The
        program parted can resize other types of partitions
        as well as MS-DOS, but sometimes in a limited manner.  Consult the
        parted documentation before using it, better safe
        than sorry.
       
5. Device files and partitions
Each partition and extended partition has its own
        device file.  The naming convention for these files is that a
        partition's number is appended after the name of the whole disk,
        with the convention that 1-4 are primary partitions (regardless of
        how many primary partitions there are) and number greater than 5 are
        logical partitions (regardless of within which primary partition
        they reside).  For example, /dev/hda1 is the
        first primary partition on the first IDE hard disk, and
        /dev/sdb7 is the third extended partition on
        the second SCSI hard disk.
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/13918/showart_129613.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP