linux 文件系统及磁盘管理
发布时间:2022-10-22 11:33:20 所属栏目:Linux 来源:
导读: 一个新的磁盘盘需要经过分区、格式化(创建文件系统),挂载之后才能正常使用。关于磁盘的分区表有两种格式:MBR(Master Boot Record)和GPT(GUID Partition Table)
MBR:
也称为主引导扇区,是计
MBR:
也称为主引导扇区,是计
一个新的磁盘盘需要经过分区、格式化(创建文件系统),挂载之后才能正常使用。关于磁盘的分区表有两种格式:MBR(Master Boot Record)和GPT(GUID Partition Table) MBR: 也称为主引导扇区,是计算机开机后访问硬盘时必须读取的首个扇区,也就是0柱面0磁头1扇区,MBR由bootload(446字节)、分区表(64字节)、MBR结束标志(2字节)共512字节组成。最大支持2TB的分区。MBR格式的分区表支持3个主分区和1个扩展分区。 GPT: 为了支持容量大于2TB的分区,引入了GPT分区表格式,最大支持18EB fdisk: 磁盘分区工具 fdisk d: 删除一个分区 l: 列出系统支持的分区类型 m:打印帮助 n: 增加一个新分区 p: 打印分区表 q: 不保存退出 w:保存退出 t: 改变分区ID 2.partprobe(centos 5),kpartx,partx(centos 6): partprobe :通知OS系统磁盘分区表改变 partx -a : 增加磁盘分区或读取所有磁盘分区 partx -l : 列出磁盘所有分区 kpartx -af :强制增加磁盘分区映射 kpartx -l :列出增加的磁盘分区映射 3. mke2fs , mkfs: 格式化磁盘(创建文件系统ext2,ext3,ext4) mke2fs的配置文件/etc/mke2fs.conf,使用用此命令加载的默认参数。 mke2fs = mkfs -t ext2 = mkfs.ext2 mke2fs: -t : 文件系统类型(ext2 | ext3 | ext4 ) -j : 相当于 -t ext3 -L Label: 设置卷标 -b ( 1024 | 2048 | 4096): 指定块大小 -i num: num个字节预留一个inode -N num: 直接指定预留多少个inode -n:不创建文件系统,但是显示创建过程中执行的操作 -I num:Inode大小 -m num: 预留管理员的空间的百分比,默认为5 -U UUID: 使用自定义的UUID -c:在创建文件系统之前,检查磁盘上坏的block -F:强制创建文件系统 -g:自定义每个block-group有多少个blocks -G:自定义block-group的数量 -O [^]feature:指定分区特性 feature:(默认sparse_super,filetype,resize_inode,dir_index,ext_attr) dir_index:使用b-trees hash加速大目录查询速度。 extend:加速大文件系统访问(large file) filetype:存储文件类型信息 flex_bg:允许block-group信息放置在block的任意位置 has_journal:创建ext3日志(同-j) journal_dev:创建外部的ext3日志替代ext2文件系统 large_file:文件系统支持大于2G的文件 resize_inode:为block-group增长提供预留空间 sparse_super:创建包含super-block备份的文件系统 uninit_bg:加速文件系统创建(仅在ext4下支持) -q:用于在脚本中静默执行格式化 # mke2fs /dev/sdb1 mke2fs 1.41.12 (17-May-2010) warning: 252 blocks unused. Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 328320 inodes, 1310720 blocks 65548 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=1342177280 40 block groups 32768 blocks per group, 32768 fragments per group 8208 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736 Writing inode tables: done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 39 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. 4. e2label e2label : 查看卷标 e2label Label: 设置定卷标 # e2label /dev/sdb1 data 5. blkid blkid :查看分区类型和UUID # blkid /dev/sdb1 /dev/sdb1: UUID="85ea6a34-0de2-47e8-83ee-589f79adb88a" TYPE="ext2" 6. dumpe2fs: 查看文件系统(ext2 , ext3 , ext4)信息 -h:仅显示super-block信息 #dumpe2fs -h /dev/sdb1 dumpe2fs 1.41.12 (17-May-2010) Usage: dumpe2fs [-bfhixV] [-o superblock=] [-o blocksize=] device [root@test ~]# dumpe2fs -h /dev/sdb1 dumpe2fs 1.41.12 (17-May-2010) Filesystem volume name: Last mounted on: Filesystem UUID: a9771ea8-9719-4ecf-a6f2-c8b417a4878f Filesystem magic number: 0xEF53 Filesystem revision #: 1 (dynamic) Filesystem features: ext_attr resize_inode dir_index filetype sparse_super large_file Filesystem flags: signed_directory_hash Default mount options: (none) Filesystem state: clean Errors behavior: Continue Filesystem OS type: Linux Inode count: 328320 Block count: 1310720 Reserved block count: 65548 Free blocks: 1287546 Free inodes: 328309 First block: 0 Block size: 4096 Fragment size: 4096 Reserved GDT blocks: 319 Blocks per group: 32768 Fragments per group: 32768 Inodes per group: 8208 Inode blocks per group: 513 Filesystem created: Fri Aug 22 13:35:10 2014 Last mount time: n/a Last write time: Fri Aug 22 13:35:11 2014 Mount count: 0 Maximum mount count: 20 Last checked: Fri Aug 22 13:35:10 2014 Check interval: 15552000 (6 months) Next check after: Wed Feb 18 13:35:10 2015 Reserved blocks uid: 0 (user root) Reserved blocks gid: 0 (group root) First inode: 11 Inode size: 256 Required extra isize: 28 Desired extra isize: 28 Default directory hash: half_md4 Directory Hash Seed: a46fce3a-c1f4-417c-941b-c23c01a3f555 7.tune2fs:调整文件系统参数(针对ext2,ext3,ext4) -f:强制tune2fs完成操作,即使有错误出现。 -l:列出super-block信息 -L label:设定卷标 -m:预留管理员的空间百分比,默认为5% -j:如果原来的文件系统类型为ext2,可以通过-j提升为ext3 -o [^]mount-options[...]: 设定其默认挂载选项 mount-options:(tune2fs支持的mout-options) debug:对文件系统启用debug code. bsdgroups: user_xattr: 启用用户定义的扩展属性 acl: 启用POSIX访问控制列表 uid16:禁用32位UID和GID,用于兼容老的内核 journal_data: 在启用了日志的分区上,元数据写入日志区优先于数据写入文件系统 journal_data_ordered: 在启用了日志的分区上,数据写入文件系统优先于元写入日志区 journal_data_writeback: 在启用了日志的分区上,当元数据写入日志区后,数据 可能被写入文件系统,it may allow old data to appear in files after a crash and journal recovery nobarrier:仅ext4分区支持 block_validity: 读写文件系统时,额外的检查被执行,仅ext4分区支持 discard: 仅ext4分区支持 nodelalloc: 仅ext4分区支持 -O [^]feature[...]: 调整分区特性,同mke2fs -O选项 8.fsck:用于检查和修复linux文件系统 -t: 要检查的文件系统类型 -A: 尝试检查所有/etc/fstab文件中所有文件系统 -C: 显示检查和修复进度条 -M: 不检查已挂载的文件系统 -N:不执行,只显示将要做什么 -P: 当使用了-A时,同时检查根文件系统和其它文件系统 -R:当使用了-A时,跳过根文件系统检查 -a: 自动修复文件系统 -r: 交互式修复文件系统 9.e2fsck:用于检查ext2,ext3,ext4文件系统 -f:强制检查 -F: 在开始检查之前,刷新分区的buffer cache -y:自动回答yes 10.mount:挂载文件系统 -r:只读挂载 -w:读写挂载 -L: 挂载有些卷标的分区 -u:挂载有些uuid的分区 -t:挂载的文件系统类型 -a:自动挂载所有 -n: 不更新/etc/mtab文件 --bind dir1 dir2: 绑定dir1到dir2,可以从dir2访问dir1的文件 -o options: 指定挂载选项 async: 异步I/O sync: 同步I/O atime/noatime: 更新访问时间 auto/noauto: 可以使用-a选项 defaults: 默认选项包括(rw,suid,dev,exec,auto,nouser,aysnc,relatime) dev/nodev: 允许使用字符和块设备 diratime/nodiratime: 更新目录inode访问次数 dirsync: exec/noexec: 允许执行二进制文件 group: 允许普通用户挂载文件系统,如果这个用户属于group user/nouser: 允许普通用户挂载文件系统,此选项隐含(noexec,nodev,nosuid) users: 允许每个用户挂载文件系统,此选项隐含(noexec,nodev,nosuid) iversion/noiversion: 每次inode被修改,i_version域被增加 mand/nomand: 允许强制锁 _netdev: 阻止系统尝试挂载网络文件系统,直到系统的网络准备就绪 nofail: 如果设备不存在,不报告错误 relatime/norelatime: 类似于atime/noatime strictatime/nostrictatime: suid/nosuid: 允许设置suid sgid owner: 如果用户是设备的owner,允许他挂载文件系统 remount: 重新挂载文件系统 ro: 只读挂载 _rnewdev:和_netdev一样,除了在执行rc.sysinit时通过“fsck -a"检查文件系统 rw: 读写挂载 mount执行后的退出状态码: 0: success 1:incorrect invocation or permission 2:system error(out of memory,cannot fork,no more loop devices) 4:internal mount bug 8:user interrupt 16:problems writing or locking /etc/mtab 32:mount failure 64:some mount succeeded umount /dev/sdb1卸载文件系统 umount /media 11.fuser:查看占用文件或socket的进程: # fuser -v /media USER PID ACCESS COMMAND /media: root 13156 ..c.. bash ACCESS列:表示访问此进程的类型 c: 当前目录 e: 可执行程序正在执行 f: 打开文件 F: 打开文件写模式 r: root目录 m: mmap'ed file or shared library # fuser -km /media 杀死占用/media的进程 12.df:查看文件系统空间使用率 -h: 以K,M,G形式显示 -i:显示inode使用率 -P:以POSIX格式显示 # df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_test-lv_root 36G 1.8G 32G 6% / 36G 1.8G 32G 6% / tmpfs 939M 0 939M 0% /dev/shm /dev/sda1 485M 37M 423M 9% /boot /dev/sdb1 5.0G 10M 4.7G 1% /media 13.du:评估文件文件占用的磁盘空间 # du -hs /root 55M /var 14.开机自动挂载文件/etc/fstab # /etc/fstab # Created by anaconda on Wed Jul 23 15:22:36 2014 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/vg_test-lv_root / ext4 defaults 1 1 UUID=590c416b-9d27-4fe1-af01-fc802a7a200c /boot ext4 defaults 1 2 /dev/mapper/vg_test-lv_swap swap swap defaults 0 0 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 第一列:要挂载的设备(设备文件,卷标,UUID) 第二列:挂载点 第三列:文件系统类型 第四列:挂载选项 第五列:转储频率 0:从不备份 1:每日备份 2:每隔一日备份 第六列:自检次序 0:不自检 1: 首先自检,通常只被/使用 2:/自检之后自检 15. dd: convert and copy a file dd if=input_file of=output_file dd if=input_file of=output_file bs=#[b|k|m|g] count=# dd if=/dev/cdrom of=/tmp/centos.iso 制作ISO文件 dd if=/dev/sdb of=/tmp/outfile bs=512 count=1 复制整个硬盘 dd if=/dev/zero of=/dev/sdb bs=500 count=1 删除磁盘前500个字节 16. ln: 创建链接文件 硬链接: 不能跨分区 不能对目录创建硬链接 会改变文件被链接的次数 与原文件指向同一个inode 符号链接: 可以跨分区 可以和原文件不同一个inode 可以对目录创建符号链接 不会改变文件的被链接次数 17. 压缩工具: zip/unzip , gzip/gunzip , bzip2/bunzip2 , xz/unxz zip: zip用于压缩文件、节省磁盘空间、把目录打包成.zip文件;对于文本文件压缩比例为2:1到3:1,zip默认使用的压缩算法是deflation 命令格式: zip options archive inpath inpath ... archive:压缩之后的目的文件,格式为xxx.zip inpath: 目录或是文件路径 options: -r: 递归查找子目录 -u: 更新archive中已存在的文件,增加新的文件 -f:更新archive中已存在的文件,但是不增加新文件 -d: 删除已存在的archive,创建新的archive文件 -U: 创建新的archive文件,结合-O选项,复制老的archive文件作为副本 -z: 增加备注信息 zip结合管道使用: find /root/ -name "*.sh" -print | zip -r bash.zip -@ 查找/root目录下所有以sh为后缀的文件,归档为bash.zip文件(-@代表inpath) zip -r - . | ls -l -作为代替archive文件用于将archive文件写到标准输出stdout tar cf - . | zip backup - -也可以作为inpath,tar备份当前目录Linux 磁盘管理,把输出结果传递给zip作归档 tar cf - . | zip | dd of=/dev/nrst0 obs=16k 等同于 tar cf - . | zip - - | dd of=/dev/nrst0 obs=16k tar归档当前目录,zip使用tar归档之的文件作为输入,然后把压缩结果写入到磁带 unzip :解压缩zip格式的文件 -d: 指定解缩目录 -l: 列出archive文件中的所有文件清单 -v: 类似于-l,显示更详细的信息 -f: 仅解压比磁盘上的文件更新的文件 -u: 类似于-f,并创建磁盘上没有文件 -p:解压文件作为标准输出stdout -t: 解压缩文件测试 -z: 查看压缩文件备注信息 gzip:压缩文件之后会删除原文件,压缩后的格式为xx.gz -c: 压缩文件作为标准输出stdout,可以使用重定向保留原文件 -d: 相当于gunzip,zcat解压 -f: 强制压缩和解压 -l: 查看压缩文件列表 -q: 静默模式,常用于脚本 -t: 检查压缩文件的完整性 -#: 1-9指定压缩比 bzip2: 压缩文件之后会删除原来的文件,压缩后的格式为xx.bz2 -c: 压缩或解压缩到标准输出stdout -d: 相当于bunzip2,bzcat -t: 检查压缩文件的完整性 -f: 强制覆盖输出文件 -k:压缩后保留原文件 -s: 压缩、解压缩、检查完整性时减少内存使用率 xz: -z: 缺省选项,压缩 -d: 相当于unxz,xzcat解压 -t: 检查压缩文件完整性 -l: 查看压缩文件列表 -k: 压缩后保留原文件 -c: 压缩或解压到标准输出stdout -#: 0-9指定压缩比例 18.归档工具: tar tar命令格式: tar [options] [file] options: -c: 创建归档文件 -x: 提取归档文件 -t: 列出归档文件内容 -C: 改变目录 -f: 指定归档文件名 -j: 使用bzip2 -J:使用xz -z: 使用gzip tar -jcf file.tar.bz2 file 把文件file归档成bz2格式 tar -jxf file.tar.bz2 展开bz2文件 tar -Jcf file.tar.xz file 把文件file归档成xz格式 tar -Jxf file.tar.xz 展开xz文件 tar -zcf file.tar.gz file 把文件file归档成gz格式 tar -zxf file.tar.gz 展开gz文件 (编辑:财气旺网 - 财气网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐