Parted - GNU Partition Editor [PSARC/2009/145 FastTrack timeout 03/06/2009]

Phi Tran phitran at sac.sfbay.sun.com
Mon Mar 2 14:38:20 PST 2009


Template Version: @(#)sac_nextcase 1.68 02/23/09 SMI
This information is Copyright 2009 Sun Microsystems
1. Introduction
    1.1. Project/Component Working Name:
	 Parted - GNU Partition Editor
    1.2. Name of Document Author/Supplier:
	 Author:  Mark Logan
    1.3  Date of This Document:
	02 March, 2009
4. Technical Description

4.1. Overview

GNU Partition Editor (Parted) [1] is a command-line application that allows you to resize, create or delete disk partitions and filesystems. The goal is to put it on the OpenSolaris Live CD. That way one could shrink the Vista or other NTFS partition and create space to install OpenSolaris. Many x86 machines come preinstalled with Vista. The availability of Parted would increase adoption of OpenSolaris by making it easier to create a dual-boot environment.

Parted is in functionality, a superset of the Solaris fdisk command.

Parted is for x86 only.

4.2. Details

4.2.1. Diagram

               +---------+                                                      
               | Install |                                                   
               +---------+                                                      
                /      \   (could use either)                                     
              /          \                                                      
            /              \                                                   
           v                v                                                
    +--------+             +---------+                                          
    | Parted |             | GParted |                                        
    +--------+             +---------+                                         
           \                  /                                                 
            \                /                                                 
             \              /                                                   
              v            v                                                    
         +-----------------------+                                             
         | libparted / ntfsprogs |                                           
         +-----------------------+                                              

4.2.2. solaris-parted

solaris-parted [2] is an open source project that ported Parted to Solaris. I used this code as a starting point.

4.2.3. ntfsprogs

Parted uses ntfsprogs [3] to resize, create or delete NTFS disk partitions and filesystems. ntfsprogs [3] is a collection of command-line utilities, one utility for each operation, e.g. ntfsresize and mkntfs.

ntfsprogs required very few changes to port to Solaris.

4.2.4. libparted

GNU Parted is composed of a command-line interface and a library. libparted does the actual device access, partition table editing and filesystem manipulation.

I made changes to libparted both to port it to Solaris and to integrate solaris-parted and ntfsprogs into it.

4.2.5. GParted

Gnome Partition Editor (GParted) [4] is a graphical application that allows you to resize, create or delete disk partitions and filesystems. GParted uses libparted and ntfsprogs. Parted is capable of doing everything GParted does.

GParted uses Gtkmm for its GUI. It requires Gtkmm 2.8.x or greater. Solaris currently has Gtkmm 2.13.8. The most recent stable version is 2.14.x. [5]

GParted should use HAL (PSARC/2007/679) to lock out HAL-based automounters when it is manipulating the partition table of a device. [6]

GParted is Phase 2 of this project. There will be a separate LSARC case.

4.2.6. open source

It is my intent to get the GNU Parted, GParted and ntfsprogs projects to buy back my changes. solaris-parted is no longer in development, but I intend to get Parted to buy back those changes along with mine.

4.2.7. Security

Interface level: Committed

Parted needs permission to access the raw disk devices, just like Solaris fdisk.

The following RBAC authorizations and profile will be added.

Authorization Names:
solaris.admin.parted.:::Partition Editor::help=AuthPartedHeader.html
solaris.admin.parted.write:::Edit Partitions::help=AuthPartedWrite.html

Profile:
Edit Partitions:::Edit Disk Partitions using GNU Parted: auths=solaris.admin.parted.write;help=RtParted.html

4.2.8. Integration with the OpenSolaris installation program

We are talking to the OpenSolaris Install group about whether they will use Parted or GParted to integrate that functionality into the installation program. They have not yet decided on the implementation specifics, so I did not include anything about it here.

4.3. Interfaces Exported

Interface Name                    Classification    Comments
---------------                   --------------    -----------------
SUNWparted                        Committed         Package name (Phase 1)
/usr/share/man/man8/parted.8      Volatile          Manual page (Phase 1)
/usr/bin/parted                   Volatile          Parted launcher shell script (Phase 1)
/usr/lib/parted/parted            Volatile          Parted application (Phase 1)
/usr/lib/parted/mkntfs            Volatile          ntfsprogs application (Phase 1)
/usr/lib/parted/ntfsresize        Volatile          ntfsprogs application (Phase 1)
/usr/lib/parted/ntfsfix           Volatile          ntfsprogs application (Phase 1)
/usr/lib/parted/ntfsclone         Volatile          ntfsprogs application (Phase 1)
/usr/lib/libparted-1.8.so.8       Volatile          Symbolic link (Phase 1)
/usr/lib/libparted-1.8.so.8.0.0   Volatile          Shared library (Phase 1)
/usr/lib/libntfs.so.10            Volatile          Symbolic link (Phase 1)
/usr/lib/libntfs.so.10.0.0        Volatile          Shared library (Phase 1)
SUNWgparted                       Committed         Package name (Phase 2)
/usr/share/man/man8/gparted.8     Volatile          Manual page (Phase 2)
/usr/bin/gparted                  Volatile          GParted application (Phase 2)

4.4. Schedule

I propose introducing GParted into OpenSolaris in three phases:

   Phase 1: Parted command line (2 man months)

      Put command line Parted on the CD.
      A prototype of command line Parted is available now.

      Use Case:

         Boot OpenSolaris CD.
         Run command line Parted in a Terminal window.
         Shrink NTFS partition.
         Install OpenSolaris.

   Phase 2: GParted GUI (3 man months)

      Put GParted GUI on the CD.

      Use Case:

         Boot OpenSolaris CD.
         Run GParted GUI.
         Shrink NTFS partition.
         Install OpenSolaris.

4.5 References

[1] GNU Parted
    http://www.gnu.org/software/parted/

[2] solaris-parted
    http://code.google.com/p/solaris-parted/

[3] NTFSprogs
    http://www.linux-ntfs.org/

[4] GParted
    http://gparted.sourceforge.net/

[5] Gtkmm
    http://gtkmm.org/

[6] HAL spec
    http://sac.sfbay/PSARC/2007/679/materials/hal-spec.html

6. Resources and Schedule
    6.4. Steering Committee requested information
   	6.4.1. Consolidation C-team Name:
		ON
    6.5. ARC review type: FastTrack
    6.6. ARC Exposure: open




More information about the opensolaris-arc mailing list