mount

最後更新: 2016-10-24

目錄

 

  • ISO 檔 (loop)
  • umount
  • 一般 mount options
  • mount a partition
  • remount readonly
  • 其他

loop mount

 

Usage:

mount /tmp/disk.img /mnt -t vfat -o loop=/dev/loop

-o loop

mount will try to find some unused loop device and use that

ISO 檔

  • iocharset (中文檔名 ), default 是 iso8859-1, 有時要改用 unicode 才不會亂碼

 


umount

 

-l         # does a "lazy" unmount
           (which means it keeps waiting until the device isn’t busy any longer before automatically unmounting it)

-k       # Kill processes accessing the file.

-f        # Force unmount
           (cause data loss for open files)

 


一般 mount options

 

# 常見的 default
defaults (equivalent to rw,suid,dev,exec,auto,nouser,async)

# mount -a 時是否 auto mount
auto
noauto

# 此 partition 上可否行 binary
exec  (default)
noexec

# readonly
ro
rw

# sync
sync
async

#  一般  user 可否 mount  此 partition
user ( noexec,nosuid,nodev )
nouser (default)

# suid 是否有效
suid
nosuid

#
noatime           # file 的 atime
nodiratime       # directory  的 atime
relatime           # update inode access times relative to modify or change time

# mount 時的 delay

nofail

does not permit the boot sequence to continue if the drive fails to mount.

nobootwait

which can be applied to non-remote filesystems to explicitly instruct mountall(8) not to hold up the boot for them

_netdev

The filesystem resides on a device that requires network access

(used to prevent the system from attempting to mount these filesystems until the network has been enabled on the system).

 


mount a partition

 

查看 file 的 partition 結構

server:~# fdisk -l diags.img

Disk diags.img: 4 MB, 4644864 bytes
16 heads, 63 sectors/track, 9 cylinders, total 9072 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

    Device Boot      Start         End      Blocks   Id  System
diags.img1   *          63        9071        4504+   4  FAT16 <32M

* 512 bytes per sector
* partition start from 63

N = mount partition = Start * block

Usage:

losetup /dev/loop0 disk.img -o N
mount /dev/loop0 /mnt/tmp

i.e.

# mount partition 1
# N = 63 x 512 = 32256

losetup /dev/loop0 disk.img -o 32256
mount /dev/loop0 /mnt/tmp

# END

umount /mnt
losetup -d /dev/loop0

 


bind mount

 

fstab

/opt/var_log              /var/log                 none    bind    0 0

mount

/opt/var_log on /var/log type none (rw,bind)

 

A bind mount is an alternate view of a directory tree.

A bind mount instead takes an existing directory tree and replicates it under a different point.

The directories and files in the bind mount are the same as the original. <-- 所以沒有 ro opt, 如果想要 ro, 就要用 bindfs

 


Force un-mount

 

umount -f -l /mnt/myfolder

-l – Lazy unmount. Detach the filesystem from the filesystem hierarchy now, and cleanup all references to the filesystem as soon as it is not busy anymore.

-f – Force unmount

 


remount

 

# 當 mount point 有人 Writer 時, 那不能 remount ro (即是對方不是 root)
mount -o remount,ro /mnt/data

mount: /mnt/data is busy

# 有 D opts 係唔可以 remount, i.e. xfs 的 pquota

mount -o remount,pquota /mnt/data

 

remount readonly

 

mount -o remount,ro /

"mount: / is busy"

解決多法

lsof /

vsftpd    10172 guwang    3w   REG    8,2 84310047 130941 /var/log/xferlog
screen     8100   root    5u   REG    8,2     4608 130823 /var/run/utmp
zabbix_ag  1433 zabbix    3w   REG    8,2        4 131579 /var/run/zabbix/zabbix_agentd.pid

找出有 "w" flag 的 proccess

lsof / | awk '$4 ~ /[0-9].*w/'

auditd      576       root    4w   REG  253,0    878458 17087583 /var/log/audit/audit.log
firewalld   628       root    3w   REG  253,0         0 33624257 /var/log/firewalld
rsyslogd    924       root    3w   REG  253,0     20050 33624258 /var/log/cron
rsyslogd    924       root    4w   REG  253,0    887146 33975068 /var/log/messages
rsyslogd    924       root    6w   REG  253,0     21831 33975069 /var/log/secure
rsyslogd    924       root    8w   REG  253,0      2574 33975070 /var/log/maillog
tuned       928       root    3w   REG  253,0     16971 17070394 /var/log/tuned/tuned.log

找出它們並 stop 它們

/etc/init.d/crond stop
/etc/init.d/rsyslog stop
/etc/init.d/mysqld stop
/etc/init.d/httpd stop
/etc/init.d/postfix stop
/etc/init.d/vsftpd stop

如果仍是 umount 唔到, 那問題是

This is caused by deleted files they are still used by a process.

To find out which processes use deleted files use the tool

You have to restart them to make the files are released.

 


check mountpoint

$ mountpoint /home

/home is a mountpoint

$ mountpoint /bin

/bin is not a mountpoint

 


其他