Wednesday, January 28, 2009

Mount partition in OpenSolaris

Mount NTFS / Ext2 / Ext3 / FAT 16 / FAT 32 in Solaris

I often get queries about mounting NTFS / Ext2 / Ext3 / FAT 16 / FAT 32 partions in Solaris . Follow the below steps . Note that its only read-only support for NTFS / Ext2 / Ext3 .

* Download packages
FSWpart
FSWfsmisc

Note these are packages for x86 Solaris .

* unzip the packages and install it

root~#gzcat FSWpart.tar.gz | tar xvf -

root~#gzcat FSWfsmisc.tar.gz | tar xvf -

root~#pkgadd -d . FSWpart

root~#pkgadd -d . FSWfsmisc

* Now run the prtpart tool

root~#/usr/sbin/prtpart

It would result in following output
root~#/usr/sbin/prtpart


Fdisk information for device /dev/rdsk/c1d0p0

Block Size : 512 bytes
Controller : ide
Disk : cmdk
Capacity : 74 GB

# start block # nblocks startCylSecHd endCylSecHd OSType
1: 0000000063 0006152832 0/ 1/ 1 7e/7f/fe Diagnostic
2: 0006152895 0025173855 7f/41/ 0 ff/ff/fe WIN95 FAT32(LBA)
3: 0031328640 0052432128 ff/ff/fe ff/ff/fe Solaris x86
4: 0083760830 0072535555 ff/ff/fe ff/ff/fe DOS Extended

# start block # nblocks startCylSecHd endCylSecHd OSType
5: 0000000001 0031407012 ff/ff/fe ff/ff/fe Linux native
0: 0031407013 0001994202 ff/ff/fe ff/ff/fe DOS Extended

# start block # nblocks startCylSecHd endCylSecHd OSType
6: 0000000063 0001994139 ff/ff/fe ff/ff/fe Linux swap
0: 0033401215 0039134340 ff/ff/fe ff/ff/fe DOS Extended

# start block # nblocks startCylSecHd endCylSecHd OSType
7: 0000000063 0039134277 ff/ff/fe ff/ff/fe WIN95 FAT32(Upto 2047GB)


Now note the disk id. In the above example its "/dev/rdsk/c1d0p0"

Now run

root~#/usr/sbin/prtpart /dev/rdsk/c1d0p0 -ldevs

Fdisk information for device /dev/rdsk/c1d0p0

** NOTE **
/dev/dsk/c1d0p0 - Physical device referring to entire physical disk
/dev/dsk/c1d0p1 - p4 - Physical devices referring to the 4 primary partitions
/dev/dsk/c1d0p5 ... - Virtual devices referring to logical partitions

Virtual device names can be used to access EXT2 and NTFS on logical partitions

/dev/dsk/c1d0p1 Diagnostic
/dev/dsk/c1d0p2 WIN95 FAT32(LBA)
/dev/dsk/c1d0p3 Solaris x86
/dev/dsk/c1d0p4 DOS Extended
/dev/dsk/c1d0p5 Linux native
/dev/dsk/c1d0p6 Linux swap
/dev/dsk/c1d0p7 WIN95 FAT32(Upto 2047GB)

The above command scan you hard-disk and displays all available filesystems. Note the required filesystems to be mounted.

To mount NTFS partition use

root~#mount -F ntfs /dev/dsk/c1d0p /mnt/windows

To mount FAT 16 / FAT 32 partition use

root~#mount -F pcfs /dev/dsk/c1d0p /mnt/windows

if the above command fails you can try the below option

root~#prtpart /dev/dsk/c1d0p0 -fat

the above command should list the available PCFS / FAT partitions in colon notation, then use the same for mounting (eg)

root~#mount -F pcfs /dev/dsk/c1d0p0:d /mnt/windows

To mount Ext2 / Ext3 partitions use

root~#mount -F ext2fs /dev/dsk/c1d0p /mnt/linux

To unmount a partition use "umount "

root~#umount /mnt/linux

2 comments:

LE Duy Khanh said...

Hi,

Follow your instruction, I am able to mount Windows partition. However, they are all read-only.

How can I mount them with "read-write"?

Thanks

Dung Luong said...

You can follow this instruction: http://blogs.sun.com/gerhardhofweber/entry/2009_06_and_ntfs_rw