Linux文件系统

2018-01-07  本文已影响0人  其实我很dou

本文主要介绍分区基本知识, 文件系统常用命令, 如何给一块新硬盘使用fdisk进行分区, 格式化并且自动挂载, 如果将新的分区加入到swap等

一. 分区和文件系统

一块新的硬盘想要使用, 首先要对其进行分区, 然后在对各个分区进行格式化, 格式化也就是写入文件系统

1. 分区类型

一块硬盘可以划分为以下三个分区

分区名 设备文件名
主分区1 /dev/sda1(第一块硬盘的第一个主分区)
主分区2 /dev/sda2(第一块硬盘的第二个主分区)
扩展分区 /dev/sda4(第一块硬盘扩展分区)
逻辑分区1 /dev/sda5(第一块硬盘的第一个逻辑分区, 只能从5开始)
逻辑分区2 /dev/sda6(第一块硬盘的第一个逻辑分区)

2. 文件系统

二. 文件系统常用命令

1. df, du, fsck, dump2fs

[root@localhost /]# du -sh /etc
26M /etc
[root@localhost /]# dumpe2fs /dev/sda1 | more
dumpe2fs 1.41.12 (17-May-2010)
Filesystem volume name:   <none>
Last mounted on:          /boot
Filesystem UUID:          9f22d879-291d-42b6-89ab-2dda6c5a65d2 
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              128016
Block count:              512000
Reserved block count:     25600
Free blocks:              462374
Free inodes:              127978

2. 挂载命令

参数 说明
remount 重新挂载已经挂载的文件系统
exec/noexec 执行/不执行, 设定是否允许在文件系统中执行可执行文件, 默认exec
rw/ro 读写/制度, 挂载时, 是否具有读写权限, 默认rw

3. 挂载光盘和U盘

# 创建光盘挂载点
[root@localhost /]# mkdir /media/cdrom

# 将光盘挂载在/media/cdrom挂载点, iso9660可以不填
[root@localhost /]# mount -t iso9660 /dev/sr0 /media/cdrom/
mount: block device /dev/sr0 is write-protected, mounting read-only

# 卸载光盘
[root@localhost /]# umount /media/cdrom/

  Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          64      512000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              64        2611    20458496   8e  Linux LVM

如果是虚拟机安装 需要切换到终端, 插入u盘, 虚拟机默认会识别u盘
, 如果不切到终端, 插入u盘, 就是windows系统识别
fdisk -l, 查找分区, 可以看出u盘被识别为/dev/sdb4

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb4   *           1        1883    15120256    c  W95 FAT32 (LBA)

挂载u盘

[root@localhost /]# mkdir /media/usb
# 指定挂载文件系统类型
[root@localhost /]# mount -t vfat /dev/sdb4 /media/usb
[root@localhost /]# ls /media/usb 
[root@localhost /]# umount /media/usb               

4. 支持NTFS文件系统

三. fdisk分区

新插入一块硬盘, 如何给一块新的硬盘分区并且挂载呢?

Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

1. 使用fdisk进行分区

Command (m for help):
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
# 新建主分区
p

# 选择分区号
Partition number (1-4): 1

# 选择起始柱面
First cylinder (1-1305, default 1): 
Using default value 1
#选择结束柱面
Last cylinder, +cylinders or +size{K,M,G} (1-1305, default 1305): +2G


Command (m for help): p
...
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         262     2104483+  83  Linux


## 新建扩展分区
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
e
Partition number (1-4): 4
First cylinder (263-1305, default 263): 
Using default value 263
Last cylinder, +cylinders or +size{K,M,G} (263-1305, default 1305): +2G

# 可以看到主分区和扩展分区
Command (m for help): p

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         262     2104483+  83  Linux
/dev/sdb4             263         524     2104515    5  Extended

## 在扩展分区上新建逻辑分区, 可以看到l logical逻辑分区选项
Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First cylinder (263-524, default 263): 
Using default value 263
Last cylinder, +cylinders or +size{K,M,G} (263-524, default 524): +2G

Command (m for help): p

#可以看到一个主分区, 一个扩展分区和一个逻辑分区
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         262     2104483+  83  Linux
/dev/sdb4             263         524     2104515    5  Extended
/dev/sdb5             263         524     2104483+  83  Linux

# 保存
Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

[root@localhost ~]# fdisk -l
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         262     2104483+  83  Linux
/dev/sdb4             263         524     2104515    5  Extended
/dev/sdb5             263         524     2104483+  83  Linux

如果w保存时, 报错, 提示分区表正在使用, 可以执行partprobe重新载入分区表, 无效的话, 就需要重新启动计算机

2. 格式化分区并挂载

mkfs -t ext4 /dev/sdb1

# 没有格式化, 无法使用dumpe2fs查看
[root@localhost ~]# dumpe2fs /dev/sdb1
dumpe2fs 1.41.12 (17-May-2010)
dumpe2fs: Bad magic number in super-block 当尝试打开 /dev/sdb1 时
找不到有效的文件系统超级块.

[root@localhost ~]# mkdir /disk1
# 无法挂载
[root@localhost ~]# mount /dev/sdb1 /disk1/
mount: you must specify the filesystem type
[root@localhost ~]# mkfs -t ext4 /dev/sdb1
mke2fs 1.41.12 (17-May-2010)
文件系统标签=
操作系统:Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
131648 inodes, 526120 blocks
26306 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=541065216
17 block groups
32768 blocks per group, 32768 fragments per group
7744 inodes per group
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912

正在写入inode表: 完成                            
Creating journal (16384 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

This filesystem will be automatically checked every 29 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[root@localhost ~]# mount /dev/sdb1 /disk1/
[root@localhost ~]# mount /dev/sdb1 /disk1/
[root@localhost /]# df -h
Filesystem                    Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root   18G  9.4G  7.2G  57% /
tmpfs                         491M     0  491M   0% /dev/shm
/dev/sda1                     485M   33M  427M   8% /boot
/dev/sdb1                     2.0G   68M  1.9G   4% /disk1
/dev/sdb5                     2.0G   68M  1.9G   4% /disk5

3. 自动挂载

自动挂载依赖于/etc/fstab配置文件, 查看该文件

/dev/mapper/VolGroup-lv_root /                       ext4    defaults        1 1
UUID=9f22d879-291d-42b6-89ab-2dda6c5a65d2 /boot                   ext4    defaults        1 2
/dev/mapper/VolGroup-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

想要自动挂载, 需要修改该文件, 加入如下内容, 将sdb1和sdb5自动挂载

/dev/sdb1               /disk1                  ext4    defaults        1 2
/dev/sdb5               /disk5                  ext4    defaults        1 2

4. 文件修复

修改该文件一定要小心, 如果写错, 系统开机时可能会直接崩溃,
修改完, 应该先执行mount -a, 依据配置文件/etc/fstab的内容, 自动挂载,
可以在不重启的情况下, 检测fstab文件是否正确**

如果系统出错, 没有启动, 输入root用户名, 进入系统后, 需要执行
mount -o remount,rw /重新挂载根分区, 并将分区设置为读写, 就可以修改/etc/fstab

四. 分配swap分区

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         262     2104483+  83  Linux
/dev/sdb2             525         656     1060290   83  Linux
/dev/sdb4             263         524     2104515    5  Extended
/dev/sdb5             263         524     2104483+  83  Linux
# 更改id
Command (m for help): t
# 更改sdb2, 输入2
Partition number (1-5): 2
# 更改为82
Hex code (type L to list codes): 82
Changed system type of partition 2 to 82 (Linux swap / Solaris)

#查看, 已经设置为Linux swap
Command (m for help): p

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         262     2104483+  83  Linux
/dev/sdb2             525         656     1060290   82  Linux swap / Solaris

WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
[root@localhost /]# mkswap /dev/sdb2
/dev/sdb2: 没有那个文件或目录
# 没有生效, 只能重启计算机
# 重启后
[root@localhost ~]# mkswap /dev/sdb2
Setting up swapspace version 1, size = 1060284 KiB
no label, UUID=e8a404e3-3389-471a-95ef-0ee343a2b2cb
# swap 为2G
[root@localhost ~]# free -m | grep Swap
Swap:         1983          0       1983

# 将/dev/sdb2加入到swap分区
[root@localhost ~]# swapo
swapoff  swapon   
[root@localhost ~]# swapon /dev/sdb2

# 增加了一个G
[root@localhost ~]# free -m | grep Swap
Swap:         3019          0       3019
[root@localhost ~]# swapoff /dev/sdb2
[root@localhost ~]# free -m | grep Swap
Swap:         1983          0       1983
/dev/sdb2               swap                    swap    defaults        0 0
上一篇 下一篇

猜你喜欢

热点阅读