lofiadm(8) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

lofiadm(8)

lofiadm(8)              System Administration Commands              lofiadm(8)

NAME
       lofiadm - administer files available as block devices through lofi

SYNOPSIS
       /usr/sbin/lofiadm [-b block_size] [-u user:group] -a | -r file [device]


       /usr/sbin/lofiadm -l [-b block_size] [-u user:group] -a file


       /usr/sbin/lofiadm -l [-b block_size] [-u user:group] -r file [device]


       /usr/sbin/lofiadm -c crypto_algorithm [-b block_size] [-u user:group]
            -a file | -r [device]


       /usr/sbin/lofiadm -c crypto_algorithm -l [-b block_size] [-u user:group]
            -a file


       /usr/sbin/lofiadm -c crypto_algorithm -l [-b block_size] [-u user:group]
            -r file [device]


       /usr/sbin/lofiadm -c crypto_algorithm -k raw_key_file
            [-b block_size] [-u user:group] -a | -r file [device]


       /usr/sbin/lofiadm -c crypto_algorithm -k raw_key_file
            -l [-b block_size] [-u user:group] -a file


       /usr/sbin/lofiadm -c crypto_algorithm -k raw_key_file
            -l [-b block_size] [-u user:group] -r file [device]


       /usr/sbin/lofiadm -c crypto_algorithm -T token_key [-b block_size]
            [-u user:group] -a | -r file [device]


       /usr/sbin/lofiadm -c crypto_algorithm -T token_key
            -l [-b block_size] [-u user:group] -a file


       /usr/sbin/lofiadm -c crypto_algorithm -T token_key -l
            [-b block_size] [-u user:group] -r file [device]


       /usr/sbin/lofiadm -c crypto_algorithm -T token_key -k wrapped_key
            [-b block_size] [-u user:group] -a | -r file [device]


       /usr/sbin/lofiadm -c crypto_algorithm -T token_key -k wrapped_key
            -l [-b block_size] [-u user:group] -a file


       /usr/sbin/lofiadm -c crypto_algorithm -T token_key -k wrapped_key
            -l [-b block_size] [-u user:group] -r file [device]


       /usr/sbin/lofiadm -c crypto_algorithm -e [-b block_size] [-u user:group]
             -a file [device]


       /usr/sbin/lofiadm -c crypto_algorithm -e -l [-b block_size]
             [-u user:group] -a file


       /usr/sbin/lofiadm -C algorithm [-s segment_size] file


       /usr/sbin/lofiadm -d file | device


       /usr/sbin/lofiadm -U file


       /usr/sbin/lofiadm [ file | device]


       /usr/sbin/lofiadm -r device]


       /usr/sbin/lofiadm -l -r

DESCRIPTION
       lofiadm  administers lofi, the loopback file driver. lofi allows a file
       to be associated with a block device. That file can  then  be  accessed
       through  the block device. This is useful when the file contains an im‐
       age of some filesystem (such as a CD-ROM image), because the block  de‐
       vice  can  then  be used with the normal system utilities for mounting,
       checking or repairing file systems. See fsck(8) and mount(8).


       Use lofiadm to add a file as a loopback device, remove such an associa‐
       tion, or display information about the current associations.


       Two types of loopback devices can be created: a normal read-write loop‐
       back device and a removable loopback device. They differ in the follow‐
       ing ways.


       Firstly, a file cannot be dissociated from  a  normal  loopback  device
       during  its lifetime. By contrast, a file can be dissociated from a re‐
       movable loopback device, which leaves it as an empty  loopback  device.
       Following  disassociation,  a different file can be associated with it.
       Note that eject(1) should be used to dissociate a file from a removable
       device.


       Secondly, there is one-to-one mapping between a normal loopback  device
       and  its  associated file. By contrast, a single file can be associated
       with multiple removable loopback devices at the same time.


       Thirdly, a normal loopback device is writable. A removable loopback de‐
       vice is read-only.


       Furthermore, if -l is used when creating a loopback device (writable or
       removable), you can create labeled writable or removable  loopback  de‐
       vices.  Instead  of  getting  /dev/[r]lofi/x  device links, for labeled
       loopback devices, /dev/[r]dsk/cxdx[p|s]x  will  be  generated,  through
       which partitions or slices on the disk image file can be accessed.


       The  number  of  potential lofi devices is limited by the zone.max-lofi
       rctl, which can be set by means of zonecfg(8) in the global  zone.  See
       resource-controls(7) for a description of zone.max-lofi.


       Encryption  and  compression options are mutually exclusive on the com‐
       mand line. Further, an encrypted file cannot be compressed  later,  nor
       can a compressed file be encrypted later.


       In the global zone, lofiadm can be used on both the global zone devices
       and all devices owned by other non-global zones on the system.

OPTIONS
       The following options are supported:

       -a | -r file [device]

           Add file as a normal loopback device, when -a is specified or a re‐
           movable loopback device, when -r is specified.

           If device is not specified, a non-existing device is picked.

           If  device  is specified, lofiadm attempts to assign it to file. If
           -a is specified, device must not exist or lofiadm will fail. If  -r
           is  specified,  lofiadm  will  fail  if device exists and is not an
           empty removable loopback device.


       -b block_size

           This option should be used together with the -a  or  -r  option  to
           specify  the  block size of the disk image when the loopback device
           is created.


       -u user:group

           The user and group that should be  used  for  accessing  the  given
           file. User can be specified as either a user name or a numeric user
           id.  The  group can be specified as a group name or a numeric group
           id. The -u option is not supported with the -C and -U options.


       -C {gzip | gzip-N | lzma}

           Compress the file with the specified compression algorithm.

           The gzip compression algorithm uses the  same  compression  as  the
           open-source  gzip  command. You can specify the gzip level by using
           the value gzip-N where N is 6 (fast) or 9 (best compression ratio).
           Currently, gzip, without a number, is equivalent to  gzip-6  (which
           is also the default for the gzip command).

           lzma stands for the LZMA (Lempel-Ziv-Markov) compression algorithm.

           Note  that you cannot write to a compressed file, nor can you mount
           a compressed file read/write.

           Note that removal by file will fail if  multiple  devices  is  cur‐
           rently associated with it. Use removal by device in this case.


       -d file | device

           Remove  an  association  by  file or device name, if the associated
           block device is not busy, and deallocates the block device.


       -l

           This option should be used together with the -a  or  -r  option  to
           create  a  labeled  loopback device. Note that, when creating a la‐
           beled loopback device, the device path cannot be specified by user.


       -s segment_size

           The segment size to use to divide the file being  compressed.  seg‐
           ment_size can be an integer multiple of 512.


       -U file

           Uncompress a compressed file.



       The following options are used when the file is encrypted:

       -c crypto_algorithm

           Select  the  encryption  algorithm. The algorithm must be specified
           when encryption is enabled because the algorithm is not  stored  in
           the disk image.

           If  none  of  -e,  -k,  or  -T  is specified, lofiadm prompts for a
           passphrase, with a minimum length of eight characters,  to  be  en‐
           tered.  The passphrase is used to derive a symmetric encryption key
           using PKCS#5 PBKD2.


       -k raw_key_file | wrapped_key_file

           Path to raw or wrapped symmetric encryption key. If a  PKCS#11  ob‐
           ject  is  also given with the -T option, then the key is wrapped by
           that object. If -T is not specified, the key is used raw.


       -T token_key

           The key in a PKCS#11 token to use for the encryption or for unwrap‐
           ping the key file.

           If -k is also specified, -T identifies the  unwrapping  key,  which
           must be an RSA private key.


       -e

           Generate  an ephemeral symmetric encryption key. Note that you can‐
           not use -e together with -r.


       -r [device]

           Create an empty removable loopback device. A file can be associated
           with that device at a later time.

           If device is not specified, a non-existing device is selected.

           If device is specified, lofiadm attempts to select it. device  must
           not exist or lofiadm will fail.


OPERANDS
       The following operands are supported:

       crypto_algorithm

           One  of: aes-128-cbc, aes-192-cbc, aes-256-cbc, des3-cbc, blowfish-
           cbc.


       device

           Display the file name associated with the block device device.

           Without arguments, print a list of the current associations.  File‐
           names must be valid absolute pathnames.

           When  a file is added, it is opened for reading or writing by root.
           Any restrictions apply (such as restricted root access  over  NFS).
           The  file  is held open until the association is removed. It is not
           actually accessed until the block device is used, so it will  never
           be written to if the block device is only opened read-only.

           Note  that  the  filename  might appear with a question mark (?) in
           front of it, if the file is not accessible. Or it  will  appear  as
           two question marks (??), if it is not possible to retrieve the path
           in the current context. Or, the filename might appear as a dash (-)
           if the device is an empty removable loopback device.


       file

           Display all block device(s) associated with file.


       raw_key_file

           Path  to a file of the appropriate length, in bits, to use as a raw
           symmetric encryption key. The key size, in bits, must match the en‐
           cryption algorithm specified by the -c option.


       token_key

           PKCS#11 token object in the format:


             token_name:manufacturer_id:serial_number:key_label

           All but the key label are optional and can be empty.  For  example,
           to specify a token object with only its key label MylofiKey, use:

             -T :::MylofiKey



       wrapped_key_file

           Path  to  file containing a symmetric encryption key wrapped by the
           RSA private key specified by -T.


EXAMPLES
       Example 1 Mounting an Existing CD-ROM Image



       You should ensure that Solaris understands the  image  before  creating
       the CD. lofi allows you to mount the image and see if it works.



       This  example  mounts  an existing CD-ROM image (sparc.iso), of the Red
       Hat 6.0 CD which was downloaded from the Internet. It was created  with
       the mkisofs utility.



       Use lofiadm to attach a block device to it:


         # lofiadm -a /home/mike_s/RH6.0/sparc.iso
         /dev/lofi/1




       lofiadm  picks  the  device  and prints the device name to the standard
       output. You can run lofiadm again by issuing the following command:


         # lofiadm
         Block Device     File                           Options
         /dev/lofi/1      /home/mike_s/RH6.0/sparc.iso   -




       Or, you can give it one name and ask for the other, by issuing the fol‐
       lowing command:


         # lofiadm /dev/lofi/1
         /home/mike_s/RH6.0/sparc.iso




       Use the mount command to mount the image:


         # mount -F hsfs -o ro /dev/lofi/1 /mnt




       Check to ensure that Solaris understands the image:


         # df -k /mnt
         Filesystem            kbytes    used   avail capacity  Mounted on
         /dev/lofi/1           512418  512418       0   100%    /mnt
         # ls /mnt
         ./            RedHat/       doc/          ls-lR         rr_moved/
         ../           TRANS.TBL     dosutils/     ls-lR.gz      sbin@
         .buildlog     bin@          etc@          misc/         tmp/
         COPYING       boot/         images/       mnt/          usr@
         README        boot.cat*     kernels/      modules/
         RPM-PGP-KEY   dev@          lib@          proc/




       Solaris can mount the CD-ROM image, and understand the  filenames.  The
       image was created properly, and you can now create the CD-ROM with con‐
       fidence.



       As a final step, unmount and detach the images:


         # umount /mnt
         # lofiadm -d /dev/lofi/1
         # lofiadm
         Block Device             File             Options




       Example 2 Making a UFS Filesystem on a File



       Making a UFS filesystem on a file can be useful, particularly if a test
       suite requires a scratch filesystem. It can be painful (or annoying) to
       have to repartition a disk just for the test suite, but you do not have
       to. You can newfs a file with lofi.



       Create the file:


         # mkfile 35m /export/home/test




       Attach  it  to  a  block device. You also get the character device that
       newfs requires, so newfs that:


         # lofiadm -a /export/home/test
         /dev/lofi/1
         # newfs /dev/rlofi/1
         newfs: construct a new file system /dev/rlofi/1: (y/n)? y
         /dev/rlofi/1:   71638 sectors in 119 cylinders of 1 tracks, 602 sectors
                 35.0MB in 8 cyl groups (16 c/g, 4.70MB/g, 2240 i/g)
         super-block backups (for fsck -F ufs -o b=#) at:
          32, 9664, 19296, 28928, 38560, 48192, 57824, 67456,






       Note that ufs might not be able to use the entire file. Mount  and  use
       the filesystem:


         # mount /dev/lofi/1 /mnt
         # df -k /mnt
         Filesystem            kbytes    used   avail capacity  Mounted on
         /dev/lofi/1            33455       9   30101     1%    /mnt
         # ls /mnt
         ./           ../          lost+found/
         # umount /mnt
         # lofiadm -d /dev/lofi/1


       Example 3 Creating a PC (FAT) File System on a UNIX File



       The  following  series  of commands creates a FAT file system on a UNIX
       file. The file is associated with a block device created by lofiadm.


         # mkfile 10M /export/test/testfs
         # lofiadm -a /export/test/testfs
         /dev/lofi/1




       Note use of rlofi, not lofi, in the following command.


         # mkfs -F pcfs -o nofdisk,size=20480 /dev/rlofi/1
         Construct a new FAT file system on /dev/rlofi/1: (y/n)? y
         # mount -F pcfs /dev/lofi/1 /mnt
         # cd /mnt
         # df -k .
         Filesystem            kbytes    used   avail capacity  Mounted on
         /dev/lofi/1            10142       0   10142     0%    /mnt


       Example 4 Compressing an Existing CD-ROM Image



       The following example illustrates compressing an existing CD-ROM  image
       (solaris.iso),  verifying that the image is compressed, and then uncom‐
       pressing it.


         # lofiadm -C gzip /export/home/solaris.iso




       Use lofiadm to attach a block device to it:


         # lofiadm -a /export/home/solaris.iso
           /dev/lofi/1




       Check if the mapped image is compressed:


         # lofiadm
         Block Device      File                            Options
         /dev/lofi/1       /export/home/solaris.iso        Compressed(gzip)
         /dev/lofi/2       /export/home/regular.iso        -






       Unmap the compressed image and uncompress it:


         # lofiadm -d /dev/lofi/1
         # lofiadm -U /export/home/solaris.iso


       Example 5 Creating an Encrypted UFS File System on a File



       This example is similar to the example of making a UFS filesystem on  a
       file, above.



       Create the file:


         # mkfile 35m /export/home/test




       Attach  the  file  to a block device and specify that the file image is
       encrypted. As a result of this command, you obtain  the  character  de‐
       vice, which is subsequently used by newfs:


         # lofiadm -c aes-256-cbc -a /export/home/secrets
         Enter passphrase: My-M0th3r;l0v3s_m3+4lw4ys!           [not echoed]
         Re-enter passphrase: My-M0th3r;l0v3s_m3+4lw4ys!        [not echoed]
         /dev/lofi/1

         # newfs /dev/rlofi/1
         newfs: construct a new file system /dev/rlofi/1: (y/n)? y
         /dev/rlofi/1:   71638 sectors in 119 cylinders of 1 tracks, 602 sectors
                35.0MB in 8 cyl groups (16 c/g, 4.70MB/g, 2240 i/g)
         super-block backups (for fsck -F ufs -o b=#) at:
         32, 9664, 19296, 28928, 38560, 48192, 57824, 67456,




       The mapped file system shows that encryption is enabled:


         # lofiadm
         Block Device    File                     Options
         /dev/lofi/1     /export/home/secrets     Encrypted




       Mount and use the filesystem:


         # mount /dev/lofi/1 /mnt
         # cp moms_secret_*_recipe /mnt
         # ls /mnt
         ./           moms_secret_cookie_recipe    moms_secret_soup_recipe
         ../          moms_secret_fudge_recipe     moms_secret_stuffing_recipe
         lost+found/  moms_secret_meatloaf_recipe  moms_secret_waffle_recipe
         # umount /mnt
         # lofiadm -d /dev/lofi/1




       Subsequent  attempts  to  map  the filesystem with the wrong key or the
       wrong encryption algorithm will fail:


         # lofiadm -c blowfish-cbc -a /export/home/secrets
         Enter passphrase: mommy                                [not echoed]
         Re-enter passphrase: mommy                             [not echoed]
         lofiadm: could not map file /root/lofi: Invalid argument
         # lofiadm
         Block Device    File                    Options
         #




       Attempts to map the filesystem without encryption will succeed, however
       attempts to mount and use the filesystem will fail:


         # lofiadm -a /export/home/secrets
         /dev/lofi/1
         # lofiadm
         Block Device    File                     Options
         /dev/lofi/1     /export/home/secrets     -
         # mount /dev/lofi/1 /mnt
         mount: /dev/lofi/1 is not this fstype
         #


       Example 6 Manipulating a Removable Loopback Device



       The following example illustrates how  to  create  an  empty  removable
       loopback device, associate a file with it, and then dissociate the file
       from the device.



       Use lofiadm to create an empty removable loopback device:


         # lofiadm -r
         /dev/lofi/1




       Verify that the device has been created:


         # lofiadm
         Block Device      File                       Options
         /dev/lofi/1       -                          Removable,Readonly




       Use lofiadm to associate a file with the device:


         # lofiadm -r /export/home/solaris.iso /dev/lofi/1
         /dev/lofi/1




       Verify that the association has succeeded:


         # lofiadm
         Block Device      File                            Options
         /dev/lofi/1       /export/home/solaris.iso        Removable,Readonly




       Use eject to dissociate the file from the device:


         # eject /dev/lofi/1




       Verify that the dissociation succeeded:


         # lofiadm
         Block Device      File                            Options
         /dev/lofi/1       -                               Removable,Readonly


       Example 7 Using a Labeled Loopback Device



       The  following  example  illustrates  how to create a labeled, writable
       loopback device.



       Use lofiadm to create a labeled loopback device:


         # lofiadm -la /export/home/disk_image
         /dev/dsk/c0d1p0




       Verify that the association has succeeded:


         # lofiadm
         Block Device      File                            Options
         /dev/dsk/c0d1p0   /export/home/disk_image         Labeled


       Example 8 Creating a lofi Device With Given User and Group



       The following example illustrates how to  create  a  lofi  device  with
       given user and group. Use lofiadm to create a loopback device on a file
       owned by admin:staff.


         # lofiadm -u admin:staff -a /export/home/disk_image




       Use  lofiadm to create a labeled loopback device on a file owned by ad‐
       min:staff.


         # lofiadm -u admin:staff -la /export/home/disk_image


ENVIRONMENT VARIABLES
       See environ(7) for descriptions of the following environment  variables
       that  affect  the  execution  of  lofiadm:  LC_CTYPE,  LC_MESSAGES, and
       NLSPATH.

EXIT STATUS
       The following exit values are returned:

       0     Successful completion.


       >0    An error occurred.


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:

       tab() box; lw(2.75i) |lw(2.75i) ATTRIBUTE TYPEATTRIBUTE VALUE _  Avail‐
       abilitysystem/core-os


SEE ALSO
       eject(1),  lofi(4D),  lofs(4FS),  attributes(7),  resource-controls(7),
       fsck(8), mount(8), mount_ufs(8), newfs(8), zonecfg(8)

NOTES
       Just as you would not directly access a disk device  that  has  mounted
       file  systems, you should not access a file associated with a block de‐
       vice except through the lofi file driver. It might also be  appropriate
       to ensure that the file has appropriate permissions to prevent such ac‐
       cess.


       The  abilities  of lofiadm, and who can use them, are controlled by the
       permissions of /dev/lofictl. Read-access allows query operations,  such
       as  listing  all  the  associations. Write-access is required to do any
       state-changing operations, like  adding  an  association.  As  shipped,
       /dev/lofictl  is  owned  by  root,  in group sys, and mode 0644, so all
       users can do query operations but only root can  change  anything.  The
       administrator  can  give  users  write-access,  allowing them to add or
       delete associations, but that is very likely a security hole and should
       probably only be given to a trusted group.


       When mounting a filesystem image, take care to  use  appropriate  mount
       options.  In  particular,  the nosuid mount option might be appropriate
       for UFS images whose origin is unknown. Also, some options might not be
       useful or appropriate, like logging or forcedirectio for UFS. For  com‐
       patibility purposes, a raw device is also exported along with the block
       device. For example, newfs(8) requires one.


       The  output  of  lofiadm (without arguments) might change in future re‐
       leases.

Oracle Solaris 11.4               23 Jun 2025                       lofiadm(8)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3