【shell笔记>系统】操作linux文件系统

2017.7.25

操作文件系统

创建分区

fdisk工具用来帮助管理安装在系统上的任何存储设备的分区。它是交互式程序,允许你输入命令来逐步完成硬盘分区操作。

使用它需要有超级用户权限和指定要分区的存储设备的设备名。

Linux采用了一种标准格式来为硬盘分配设备名称。对于老式的IDE驱动器,Linux使用的是/dev/hdx。其中x表示一个字母,从a开始(第一个驱动器是a,第二个驱动器是b)。对于SATA驱动器和SCSI驱动器,Linux使用的是/dev/sdx。

root@wsx-ubuntu:/home/wsx# fdisk  /dev/sd
sda   sda1  sda2  sda3  sda4  sda5  sda6  sdb   sdb1  sdb2  sdb3  sdb4  
root@wsx-ubuntu:/home/wsx# fdisk  /dev/sda

Welcome to fdisk (util-linux 2.27.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


命令(输入 m 获取帮助): p #显示分区详细信息
Disk /dev/sda: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 273EEEA8-0192-4208-BB82-74914AEB9E17

设备            Start     末尾    扇区   Size 类型
/dev/sda1        2048  485517311 485515264 231.5G Microsoft basic data
/dev/sda2   485517312 1329291263 843773952 402.4G Microsoft basic data
/dev/sda3  1534093312 1953521663 419428352   200G Microsoft basic data
/dev/sda4  1329291264 1330341887   1050624   513M EFI System
/dev/sda5  1330341888 1517514751 187172864  89.3G Linux filesystem
/dev/sda6  1517514752 1534093311  16578560   7.9G Linux swap

Partition table entries are not in disk order.

命令(输入 m 获取帮助): m   #显示帮助和各命令含义

Help:

  Generic
   d   delete a partition
   F   list free unpartitioned space
   l   list known partition types
   n   add a new partition
   p   print the partition table
   t   change a partition type
   v   verify the partition table
   i   print information about a partition

  Misc
   m   print this menu
   x   extra functionality (experts only)

  Script
   I   load disk layout from sfdisk script file
   O   dump disk layout to sfdisk script file

  Save & Exit
   w   write table to disk and exit
   q   quit without saving changes

  Create a new label
   g   create a new empty GPT partition table
   G   create a new empty SGI (IRIX) partition table
   o   create a new empty DOS partition table
   s   create a new empty Sun partition table


通过n我们可以创建新的分区,分区可以按主分区或扩展分区创建。

创建文件系统

将数据存储到分区之前,我们必须用某种文件系统对其进行格式化,这样Linux才能使用它。

我们在使用Windows常见的为NTFS文件系统。

创建文件系统的命令行程序

工具 用途
mkefs 创建一个ext文件系统
mke2fs 创建一个ext2文件系统
mkfs.ext3 创建一个ext3文件系统
mkfs.ext4 创建一个ext4文件系统
mkreiserfs 创建一个ReiserFS文件系统
jfs_mkfs 创建一个JFS文件系统
mkfs.xfs 创建一个XFS文件系统
mkfs.zfs 创建一个ZFS文件系统
mkfs.btrfs 创建一个Btrfs文件系统

注意,并非所有的命令工具都默认安装了,我们可以通过type命令查询:

root@wsx-ubuntu:/home/wsx# type mkfs.ext4
mkfs.ext4 是 /sbin/mkfs.ext4
root@wsx-ubuntu:/home/wsx# type mkfs.btrfs
bash: type: mkfs.btrfs: 未找到

所有的系统命令都允许通过不带选项的简单命令来创建一个默认的文件系统,比如Ubuntu中用的ext4:

$ sudo mkfs.ext4 /dev/sdb1

为分区创建了文件系统之后,下一步是将它挂载到虚拟目录的某个挂载点,这样就可以将数据存储在新文件系统中了。我们可以将文件系统挂载到虚拟目录中需要额外空间的任何位置。

$ ls /mnt
$ sudo mkdir /mnt/my_partition
$ ls -al /mnt/my_partition
$
$ ls -dF /mnt/my_partition
/mnt/my_partition/
$ sudo mount -t ext4 /dev/sdb1 /mnt/my_partition #指明挂载及文件类型

$ ls -al /mnt/my_partition

这种方式效果为临时挂载,我们可以将其添加到/etc/fstab文件中让系统自动挂载。

文件系统的检查和修复

fsck命令能够检查和修复大部分类型的Linux文件系统。命令格式为

fsck options filesystem

可以列出多个要检查的文件系统。文件系统可以通过设备名、在虚拟目录中的挂载点以及分配给文件系统的唯一UUID值来引用。

选项参考

Emergency help:
 -p                   Automatic repair (no questions)
 -n                   Make no changes to the filesystem
 -y                   Assume "yes" to all questions
 -c                   Check for bad blocks and add them to the badblock list
 -f                   Force checking even if filesystem is marked clean
 -v                   Be verbose
 -b superblock        Use alternative superblock
 -B blocksize         Force blocksize when looking for superblock
 -j external_journal  Set location of the external journal
 -l bad_blocks_file   Add to badblocks list
 -L bad_blocks_file   Set badblocks list

只能在未挂载的文件系统上运行fsck命令。当我们需要检查挂载了的文件系统时,我们系统先卸载该文件系统,检查后重新挂载即可。

逻辑卷管理

Linux逻辑卷管理器(LVM)软件包可以将另一个硬盘上的分区加入已有的文件系统,动态地添加硬盘空间。它可以让我们在无需重建整个文件系统的情况下,轻松地管理磁盘空间。

逻辑卷管理的核心在于如何处理安装在系统上的硬盘分区。在逻辑卷管理的世界里,硬盘分区称作物理卷(PV)。每个物理卷都会映射到硬盘上特定的物理分区。多个物理卷集中在一起可以形成一个卷组(VG)。整个结构中的最后一层是逻辑卷(LV)。逻辑卷为Linux提供了创建文件系统的分区环境,作用类似于Linux中的物理硬盘分区。Linux系统将逻辑卷视为物理分区

上面理解来说,我们实际的物理硬盘可以分为不同的物理分区,这些分区对应着物理卷的概念,所有的物理卷形成了一个卷组。这个卷组为逻辑分区提供了一个平台,我们可以根据需求把卷组划分为不同的逻辑分区,它们对应着挂载在系统上的文件目录。对于linux系统而言,逻辑卷就是它进行文件操作的“物理分区”,而实际上,这些分区由真实的物理卷映射而成。

Linux中的LVM

Linux中的LVM有两个版本:

  • LVM1: 只能用于Linux内核版本2.4,它仅提供基本的逻辑卷管理功能
  • LVM2: LVM的更新版本,可以适用于Linux内核版本2.6。

LVM2提供了好用的功能:

  • 快照:Linux LVM允许我们在逻辑卷在线的状态下将其复制到另一个设备。快照允许我们在复制的同时,保证允许关键任务的服务器继续工作。LVM1只创建只读快照,LVM2支持创建可读可写快照。
  • 条带化:有了条带化,可以跨多个物理硬盘创建逻辑卷。
  • 镜像:镜像是一个实时更新的逻辑卷的完整副本,当我们创建镜像逻辑卷时,LVM会将原始逻辑卷同步到镜像副本中。

使用LVM

  1. 定义物理卷:通过fdisk命令创建分区后,用t命令改变分区类型。比如之前创建了/dev/sdb1分区,然后接上

    t #改变分区类型
    8e #表示这个分区将被用作LVM系统的一部分,而不是一个直接的文件系统
    p #显示详细信息
    w #保存
    
  2. 用分区创建实际的物理卷

    $ sudo pvcreate /dev/sdb1
    # 结果显示成功即可,如果pvcreate命令不正常,可能是lvm2包没有安装好
    

    查看

    $ sudo pvdisplay /dev/sdb1
    
  3. 创建卷组:可以将所有可用的物理卷加到一个卷组,也可以结合不同的物理卷创建多个卷组。

    使用vgcreate命令

    $ sudo vgcreate Vol1 /dev/sdb1
    # 创建名为Vo11的卷组
    # 同样地,可以用vgdisplay显示卷组细节
    
  4. 创建逻辑卷:使用lvcreate命令

  5. 创建文件系统:运行完lvcreate命令之后,逻辑卷就产生了,但它还没有文件系统。我们需要用相应的命令来创建文件系统:

    $ sudo mkfs.ext4 /dev/Vol1/lvtest
    # lvtest为创建的逻辑卷
    

    在创建了新的文件系统后,可以用标准Linux mount命令进行挂载。

  6. 修改LVM

    Linux LVM包的常见命令

    命令 功能
    vgchange 激活和禁用卷组
    vgremove 删除卷组
    vgextend 将物理卷加到卷组
    vgreduce 从卷组中删除物理卷
    lvextend 增加逻辑卷的大小
    lvreduce 减小逻辑卷的大小
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容

  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 12,149评论 2 34
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,215评论 9 467
  • 先养养眼 1.创建分区: fdisk工具用来帮助管理安装在系统上的任何存储设备的分区。它是交互式程序,允许你输入命...
    PublicDZ阅读 2,642评论 0 0
  • Linux系统一般有4个主要部分: 内核、shell、文件系统和应用程序。内核、shell和文件系统一起形成了基本...
    偷风筝的人_阅读 3,247评论 1 17
  • 长恨人心不如水,等闲平地起波澜。 年下到正月,家中几番变故,令人许久不得心静,唏嘘感慨,意难平!都说人生如戏,哪知...
    日夕间阅读 468评论 0 3