On Thu, 2007-11-15 at 07:22 -0800, Nabeel Saad wrote:
> Hello, 
> 
> I have a question about using ZFS with Fuse.  A little bit of background of 
> what we've been doing first...  We recently had an issue with a Solaris 
> server where the permissions of the main system files in /etc and such were 
> changed.  On server restart, Solaris threw an error and it was not possible 
> to log in, even as root. 
> 
> So, given that it's the only Solaris machine we have, we took out the drive 
> and after much trouble trying with different machines, we connected it to 
> Linux 2005 Limited Edition server using a USB to SATA connector.  The linux 
> machine now sees the device in /dev/sda* and I can confirm this by doing the 
> following: 
> 
> [root]# fdisk sda 
> 
> Command (m for help): p 
> 
> Disk sda (Sun disk label): 16 heads, 149 sectors, 65533 cylinders 
> Units = cylinders of 2384 * 512 bytes 
> 
> Device Flag    Start       End    Blocks   Id  System 
> sda1          1719     11169  11264400    2  SunOS root 
> sda2  u          0      1719   2049048    3  SunOS swap 
> sda3             0     65533  78115336    5  Whole disk 
> sda5         16324     65533  58657128    8  SunOS home 
> sda6         11169     16324   6144760    7  SunOS var 
> 
> Given that Solaris uses ZFS,

Solaris *can* use ZFS. ZFS root isn't supported by any distro (other
than perhaps Indiana). The filesystem you are trying to mount is
probably UFS.

>  we figured to be able to change the permissions, we'll need to be able to 
> mount the device.  So, we found Fuse, downloaded, installed it along with 
> ZFS.  Everything went as expected until the creation of the pool for some 
> reason.  We're interested in either sda1, sda3 or sda5, we'll know better 
> once we can mount them...   
> 
> So, we do ./run.sh & and then the zpool and zfs commands are available.  My 
> ZFS questions come here, once we run the create command, I get the error 
> directly: 
> 
> [root]# zpool create mypool sda 

If you want to destroy the data on /dev/sda then this is a good start.
IF it were ZFS (which it probably isn't) you'd want to be using "zpool
import".

> fuse: mount failed: Invalid argument 
> cannot mount 'mypool': Input/output error 
> 
> However, if I list the pools, clearly it's been created: 
> 
> [root]# zpool list 
> NAME                    SIZE    USED   AVAIL    CAP  HEALTH     ALTROOT 
> mypool                 74.5G     88K   74.5G     0%  ONLINE     - 
> 
> It seems the issue is with the mounting, and I can't understand why: 
> 
> [root]# zfs mount mypool 
> fuse: mount failed: Invalid argument 
> cannot mount 'mypool': Input/output error 
> 
> [root]# zfs mount 
> 
> I had searched through the source code trying to figure out what argument was 
> considered invalid and found the following: 
> 
>     477     if (res == -1) {
>    478         /*
>    479          * Maybe kernel doesn't support unprivileged mounts, in this
>    480          * case try falling back to fusermount
>    481          */
>    482         if (errno == EPERM) {
>    483             res = -2;
>    484         } else {
>    485             int errno_save = errno;
>    486             if (mo->blkdev && errno == ENODEV && 
> !fuse_mnt_check_fuseblk())
>    487                 fprintf(stderr, "fuse: 'fuseblk' support missing\n");
>    488             else
>    489                 fprintf(stderr, "fuse: mount failed: %s\n",
>    490                         strerror(errno_save));
>    491         }
>    492 
>    493         goto out_close;
>    494     }
> 
> in the following file: 
> 
> http://cvs.opensolaris.org/source/xref/fuse/libfuse/mount.c 

This is the OpenSolaris fuse code, you're using FUSE on Linux. You
should check with the Linux FUSE community...

-Mark

_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to