#mount命令 : 挂载
取消挂载的时候,如果有人在挂载点中,这样就会出现无法取消挂载,在取消挂载前时最好提前发消息,然后在取消挂载
用mount命令挂载文件系统
挂载方法 : mount DEVICE MOUNT_POINT
mount:通过查看/etc/mtab文件显示当前已挂载的所有设备
mount [-fnrsvw] [-t vfstype] [-o options] device dirdevice:指明要挂载的设备;
(1) 设备文件:例如/dev/sda5
(2) 卷标:-L 'LABEL', 例如 -L 'MYDATA'
(3) UUID, -U 'UUID':例如 -U '0c50523c-43f1- 45e7-85c0-a126711d406e'
(4) 伪文件系统名称:proc, sysfs, devtmpfs, configfs
dir:挂载点事先存在;建议使用空目录
进程正在使用中的设备无法被卸载
-t:vsftype:指定要挂载的设备上的文件系统类型
-r:readonly,只读挂载
-w:read and write, 读写挂载
-n:不更新/etc/mtab,mount不可见
-a:自动挂载所有支持自动挂载的设备(定义在了/etc/fstab 文件中,且挂载选项中有auto功能)
-L 'LABEL':以卷标指定挂载设备
-U 'UUID': 以UUID指定要挂载的设备
-B, --bind:绑定目录到另一个目录上
查看内核追踪到的已挂载的所有设备cat /proc/mounts
-o options:(挂载文件系统的选项),多个选项使用逗号分隔
async:异步模式
sync:同步模式,内存更改时,同时写磁盘
atime/noatime:包含目录和文件
diratime/nodiratime:目录的访问时间戳
auto/noauto:是否支持自动挂载,是否支持-a选项
exec/noexec:是否支持将文件系统上运行应用程序
dev/nodev:是否支持在此文件系统上使用设备文件
suid/nosuid:是否支持suid和sgid权限
remount:重新挂载
ro:只读
rw:读写
user/nouser:是否允许普通用户挂载此设备,/etc/fstab使用 acl:启用此文件系统上的acl功能
loop: 使用loop设备
defaults:相当于rw, suid, dev, exec, auto, nouser, async
卸载前要注意是否有用户正在使用,并且仔细看下要卸载的设备目前挂载情况
查看挂载情况命令:findmnt MOUNT_POINT|device
查看正在放音指定文件系统的进程lsof MOUNT_POINT
fuser -v MOUNT_POINT
终止所有正在访问指定的文件系统的进程
fuser -km MOUNT_POINT
卸载命令
umount DEVICE
umount MOUNT_POINT[root@Centos6~]# lsof /mnt COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME bash 3196 root cwd DIR 8,17 4096 2 /mnt [root@Centos6~]#fuser -v /mnt 用户 进程号 权限 命令 /mnt: root 3196 ..c.. bash [root@Centos6~]#w 07:39:29 up 14:29, 2 users, load average: 0.00, 0.00, 0.00 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root tty1 - Sat17 9.00s 0.13s 0.13s -bash root pts/0 192.168.245.1 22:12 0.00s 0.93s 0.01s w [root@Centos6~]#echo Please get out > /dev/tty1
配置文件系统体系
被mount、fsck和其它程序使用
系统重启时保留文件系统体系
可以在设备栏使用文件系统卷标
使用mount -a 命令挂载/etc/fstab中的所有文件系统
/etc/fstab 每行定义一个要挂载的文件系统
要挂载的设备或伪文件系统设备文件
LABEL:LABEL=""
UUID:UUID=""
伪文件系统名称:proc,sysfs
挂载点
文件系统类型
挂载选项:defaults
转储频率:0:不做备份 1:每天转储 2:每隔一天转储
自检次序:
0:不自检
1:首先自检;一般只有rootfs采用1
其他挂载程序最好不要自检,因为如果有问题,会导致系统无法正常启动
[root@Centos6app]#mkfs.ext4 /app/f1
mke2fs 1.41.12 (17-May-2010)
/app/f1 is not a block special device.
无论如何也要继续? (y,n) y
.......
[root@Centos6app]#blkid f1
f1: UUID="23a4efe2-aae8-4dd6-961e-c547896e9079" TYPE="ext4"
[root@Centos6app]#ls /dev/loop*
/dev/loop0 /dev/loop2 /dev/loop4 /dev/loop6
/dev/loop1 /dev/loop3 /dev/loop5 /dev/loop7
[root@Centos6app]#mknod /dev/loop8 b 7 8
[root@Centos6app]#ls /dev/loop*
/dev/loop0 /dev/loop2 /dev/loop4 /dev/loop6 /dev/loop8
/dev/loop1 /dev/loop3 /dev/loop5 /dev/loop7
[root@Centos6app]#dd if=/dev/zero of=f2 bs=1M count=1024
记录了1024+0 的读入
记录了1024+0 的写出
1073741824字节(1.1 GB)已复制,9.59967 秒,112 MB/秒
[root@Centos6app]#losetup /dev/loop8 /app/f2
[root@Centos6app]#losetup -a
/dev/loop0: [0803]:11 (/app/f1)
[root@Centos6app]#cat /boot/grub/grub.conf
.........
kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=UUID=2dee0f68-6e60-4852-a9f6-f12ff27dd0da rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet 如果想创建多个loop,这行最后加上**max_loop=100**
initrd /initramfs-2.6.32-696.el6.x86_64.
[root@Centos6app]#vim /etc/fstab
.......
UUID=88dfb867-e9d9-4bb1-b835-dcfae33f475e /mnt/sdb1 ext4 defaults 0 0
UUID=fef33d27-205d-4625-96fe-80b4edc488a1 /mnt/sdc1 ext4 defaults 0 0
/app/f1 /mnt/f1 ext4 defaults,loop 0 0
/app/f2 /mnt/f2 ext4 defaults,loop 0 0
/etc/sysconfig /mnt/sysconfig none bind 0 0
[root@Centos6~]#df -T
Filesystem Type 1K-blocks Used Available Use% Mounted on
.......
/dev/sdb1 ext4 5029504 10232 4757128 1% /mnt/sdb1
/dev/sdc1 ext4 5029504 10232 4757128 1% /mnt/sdc1
/app/f1 ext4 999320 1284 945608 1% /mnt/f1
/app/f2 ext4 999320 1284 945608 1% /mnt/f2
SWAP 交换分区
交换分区是系统RAM的补充
基本设置包括:创建交换分区或者文件
使用mkswap写入特殊系统
在/etc/fstab文件中添加适当的条目
使用swapon -a 激活交换空间
用法:swapon [OPTION]... [DEVICE]
-a:激活所有的交换分区
-p PRIORITY:指定优先级
/etc/fstab:pri=value
禁用命令:swapoff [OPTION]... [DEVICE]
可以指定swap分区0到32767的优先级,值越大优先级越高
如果用户没有指定,那么核心会自动给swap指定一个优先级 ,这个优先级从-1开始,每加入一个新的没有用户指定优先 级的swap,会给这个优先级减1
先添加的swap的缺省优先级比较高,除非用户自己指定一个 优先级,而用户指定的优先级(是正数)永远高于核心缺省指定 的优先级(是负数)
优化性能:分布存放,高性能磁盘存放
[root@Centos6~]#swapon -s
Filename Type Size Used Priority
/dev/sda5 partition 2097148 0 -1
[root@Centos6~]#cat /proc/swaps
Filename Type Size Used Priority
/dev/sda5 partition 2097148 0 -1
[root@Centos6~]#vim /etc/fstab
UUID=26003261-5cc9-47e2-8a5a-808d7289f66b swap swap pri=10 0 0
[root@Centos6~]#dd if=/dev/zero of=/app/swapfile bs=1M count=1024
记录了1024+0 的读入
记录了1024+0 的写出
1073741824字节(1.1 GB)已复制,7.48621 秒,143 MB/秒
[root@Centos6~]#mkswap /app/swapfile
mkswap: /app/swapfile: warning: don't erase bootbits sectors
on whole disk. Use -f to force.
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=f1ae20e0-36a7-41c6-b811-a474cfb0dcc2
[root@Centos6~]#blkid /app/swapfile
/app/swapfile: UUID="f1ae20e0-36a7-41c6-b811-a474cfb0dcc2" TYPE="swap"
[root@Centos6~]#vim /etc/fstab
/app/swapfile swap swap defaults 0 0
[root@Centos6~]#swapon -a
[root@Centos6~]#swapon -s
Filename Type Size Used Priority
/dev/sda5 partition 2097148 0 -1
/app/swapfile file 1048572 0 -2
[root@Centos6~]#free
total used free shared buffers cached
Mem: 1204812 1129464 75348 352 43732 899064
-/+ buffers/cache: 186668 1018144
Swap: 3145720 0 3145720
挂载意味着使外来的文件系统看起来如同是主目录树的一部分
访问前、介质必须被挂载
摘除时,介质必须被卸载
按照默认设置,非根用户只能挂载某些设备(光盘、DVD、软 盘、USB等等)
挂载点通常在/media 或/mnt下常见工具
用法free [-b|-k|-m|-g|-h] [-l] [-o] [-t] [-s delay] [-c count] [-V]
-k:以kB为单位
-m: 以MB为单位
-g: 以GB为单位
-h: 所有输出字段自动缩放到包括单位在内的最短(三位数)表示,以人类易读格式显示
-l显示详细的低和高内存统计信息
df [OPTION]... [FILE]... -H 以1000为单位
-a, - 都包括虚拟文件系统
-B,--block-size = SIZE使用SIZE字节块直接显示文件而不是挂载点的统计信息
总计产生总计-h, - 人类可读的打印尺寸(例如,1K 234M 2G)
-H, - 同样,但是使用1000而不是1024的幂
-i:列出inode信息
-P:以Posix兼容的格式输出
-t, --type=类型 只显示指定文件系统为指定类型的信息
-T, --print-type 显示文件系统类型
-x, --exclude-type=类型 只显示文件系统不是指定类型信息
SIZE 可以是一个可选的整数,后面跟着以下单位中的一个:KB 1000,K 1024,MB 10001000,M 10241024,还有 G、T、P、E、Z、Y。
计算每个文件的磁盘用量,目录则取总用量
用法:du [选项]... [文件]...或:du [选项]... --files0-from=F
长选项必须使用的参数对于短选项时也是必需使用的。
-a, --all 输出所有文件的磁盘用量,不仅仅是目录--apparent-size 显示表面用量,而并非是磁盘用量;虽然表面用量通常会小一些,但有时它会因为稀疏文件间的"洞"、内部碎片、非直接引用的块等原因而变大。
-B, --block-size=大小 使用指定字节数的块
-b, --bytes 等于--apparent-size --block-size=1
-c, --total 显示总计信息
-D, --dereference-args 解除命令行中列出的符号连接--files0-from=F 计算文件F 中以NUL 结尾的文件名对应占用的磁盘空间
如果F 的值是"-",则从标准输入读入文件名-H 等于--dereference-args (-D)
-h, --human-readable 以可读性较好的方式显示尺寸(例如:1K 234M 2G)--si 类似-h,但在计算时使用1000 为基底而非1024
-k 等于--block-size=1K
-l, --count-links 如果是硬连接,就多次计算其尺寸
-m 等于--block-size=1M
-L, --dereference 找出任何符号链接指示的真正目的地
-P, --no-dereference 不跟随任何符号链接(默认)
-0, --null 将每个空行视作0 字节而非换行符
-S, --separate-dirs 不包括子目录的占用量
-s, --summarize 只分别计算命令列中每个参数所占的总用量
-x, --one-file-system 跳过处于不同文件系统之上的目录
-X, --exclude-from=文件 排除与指定文件中描述的模式相符的文件
--exclude=PATTERN 排除与PATTERN 中描述的模式相符的文件
--max-depth=N 显示目录总计(与--all 一起使用计算文件)
当N 为指定数值时计算深度为N;
--max-depth=0 等于--summarize
--time 显示目录或该目录子目录下所有文件的最后修改时间
--time=WORD 显示WORD 时间,而非修改时间:
atime,access,use,ctime 或status
--time-style=样式 按照指定样式显示时间(样式解释规则同"date"命令):
full-iso,long-iso,iso,+FORMAT
--help 显示此帮助信息并退出
--version 显示版本信息并退出
losetup 命令:设置和控制回路设备
常用选项
-a, --all 显示所有回路设备的状态
-c, --set-capacity 强制循环驱动程序重新读取与指定循环设备关联的文件的大小
-d, --detach loopdev 分离与指定的循环设备相关联的文件或设备
-e, -E, --encryption 使用指定的名称或号码启用数据加密
-f, --find 找到第一个未使用的回路设备。 如果存在文件参数,请使用此设备。 否则,打印它的名字
-h, --help 打印帮助
-j, --associated file 显示与给定文件关联的所有循环设备的状态
-r, --read-only 设置只读循环设备
dd 命令:convert and copy a file
用法: dd if=/PATH/FROM/SRC of=/PATH/TO/DEST
bs=#:block size, 复制单元大小
count=#:复制多少个bs
of=file 写到所命名的文件而不是到标准输出
if=file 从所命名文件读取而不是从标准输入
bs=size 指定块大小(既是是ibs也是obs)
ibs=size 一次读size个byte
obs=size 一次写size个byte
cbs=size 一次转换size个byte
skip=blocks 从开头忽略blocks个ibs大小的块
seek=blocks 从开头忽略blocks个obs大小的块
count=n 只拷贝n个记录conv=conversion[,conversion...] 用指定的参数转换文件
转换参数:
ascii 转换 EBCDIC 为 ASCII
ebcdic 转换 ASCII 为 EBCDIC
lcase 把大写字符转换为小写字符
ucase 把小写字符转换为大写字符
nocreat 不创建输出文件
noerror 出错时不停止
notrunc 不截短输出文件
sync 把每个输入块填充到ibs个字节,不足部分用空(NUL)字 符补齐
备份MBR:dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1
破坏MBR中的bootloader:dd if=/dev/zero of=/dev/sda bs=64 count=1 seek=446有一个大与2K的二进制文件fileA。现在想从第64个字节位置 开始读取,需要读取的大小是128Byts。又有fileB, 想把上面 读取到的128Bytes写到第32个字节开始的位置,替换 128Bytes,实现如下:
#dd if=fileA of=fileB bs=1 count=128 skip=63 seek=31 conv=notrunc
将本地的/dev/sdx整盘备份到/dev/sdy
dd if=/dev/sdx of=/dev/sdy
将/dev/sdx全盘数据备份到指定路径的image文件
dd if=/dev/sdx of=/path/to/image
备份/dev/sdx全盘数据,并利用gzip压缩,保存到指定路径
dd if=/dev/sdx | gzip >/path/to/image.gz
恢复:
将备份文件恢复到指定盘
dd if=/path/to/image of=/dev/sdx
将压缩的备份文件恢复到指定盘
gzip -dc /path/to/image.gz | dd of=/dev/sdx
dd if=/dev/mem of=/root/mem.bin bs=1024
将内存里的数据拷贝到root目录下的mem.bin文件
dd if=/dev/cdrom of=/root/cd.iso
拷贝光盘数据到root文件夹下,并保存为cd.iso文件
dd if=/dev/urandom of=/dev/sda1
利用随机的数据填充硬盘,在某些必要的场合可以用来销毁数据 ,执行此操作以后,/dev/sda1将无法挂载,创建和拷贝操作 无法执行
得到最恰当的block size
dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file
dd if=/dev/zero bs=2048 count=500000 of=/root/1Gb.file
dd if=/dev/zero bs=4096 count=250000 of=/root/1Gb.file
通过比较dd指令输出中所显示的命令执行时间,即可确定系统最 佳的block size大小
dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000
dd if=/root/1Gb.file bs=64k | dd of=/dev/null
dd if=/dev/sda of=/dev/sda
当硬盘较长时间(比如1,2年)放置不使用后,磁盘上会 产生消磁点。当磁头读到这些区域时会遇到困难,并可能 导致I/O错误。当这种情况影响到硬盘的第一个扇区时, 可能导致硬盘报废。上边的命令有可能使这些数据起死回 生,且这个过程是安全高效的
转载于:https://blog.51cto.com/exia00linux/2051688