1. 程式人生 > >linux學習筆記-磁盤分區、格式化與掛載

linux學習筆記-磁盤分區、格式化與掛載

linux 磁盤

磁盤分區、格式化與掛載

磁盤分區、格式化與掛載

一、給磁盤分區

分區工具介紹

fdisk:分區時只修改分區表信息;操作簡單;不支持大於2T的分區;只能使用交互式來分區。

parted:直接將分區信息寫入磁盤;操作比較復雜;支持大於2T的分區,並且允許調整分區的大小;可以使用交互式或非交互式進行分區。

1、fdisk分區過程

1)選擇所需要分區的硬盤:fdisk -uc /dev/xvdb

[[email protected] ~]# fdisk -uc /dev/xvdb   #<==-uc是分區參數,如果不加會有警告;/dev/xvdb是需要分區的磁盤
Device contains neither a valid DOSpartition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with diskidentifier 0x12c129c5.
Changes will remain in memory only,until you decide to write them.
After that, of course, the previouscontent won‘t be recoverable.
 
Warning: invalid flag 0x0000 ofpartition table 4 will be corrected by w(rite)
 
Command (m for help):

2)打印fdisk的功能菜單:m

Command (m for help): m  
Command action
  a   toggle a bootable flag
  b   edit bsd disklabel
  c   toggle the dos compatibilityflag
   d   delete a partition    #<==刪除一個已有分區
   l   listknown partition types     #<==打印分區類型
   m   print this menu       #<==打印這個功能菜單
   n   add a new partition   #<==添加一個新分區
  o   create a new empty DOSpartition table
  p   print the partition table     #<==打印分區表
  q   quit without saving changes   #<==不保存退出
  s   create a new empty Sundisklabel
  t   change a partition‘s system id  #<==修改分區的ID號(改變分區類型)
  u   change display/entry units
  v   verify the partition table
  w   write table to disk and exit   #<==保存退出
  x   extra functionality (expertsonly)

3)添加一個新的分區:n

註意:

主分區和拓展分區最多有4個(因為分區表只有64字節,一個分區會占用16字節)

擴展分區之後還要建立邏輯分區才能使用(邏輯分區可以有多個)

無論主分區和擴展分區有多少個,邏輯分區的分區號都是從5開始的

Command (m for help): n
Command action
  e   extended                  #<==e表示新建一個擴展分區
  p   primary partition (1-4)   #<==p表示新建一個主分區

4)新建一個主分區(擴展分區和邏輯分區同理):p

p                                         #<==如果是擴展分區就選e,邏輯分區選l
Partition number (1-4):          #<==選擇主分區號(1~4)

5)選擇分區號:1(是第幾個主分區就選幾)

Partition number (1-4): 1
First sector (2048-20971519, default2048):      #<==選擇起始的扇區,默認是2048

6)選擇起始扇區:直接回車選擇默認

First sector (2048-20971519, default2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G}(2048-20971519, default 20971519):   #<==選擇結束扇區,可以通過+size設置大小,默認到最後一個扇區

7)設置分區大小:+10M

Last sector, +sectors or +size{K,M,G} (2048-20971519,default 20971519): +10M
 
Command (m for help):

8)打印分區表信息:p

Command (m for help): p
 
Disk /dev/xvdb: 10.7 GB, 10737418240bytes
255 heads, 63 sectors/track, 1305cylinders, total 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes /512 bytes
Disk identifier: 0x12c129c5
 
   Device Boot      Start         End      Blocks  Id  System
/dev/xvdb1            2048       22527       10240  83  Linux  #<==已建好分區

9)保存退出:w

Command (m for help): w
The partition table has been altered!
 
Calling ioctl() to re-read partitiontable.
Syncing disks.

10)分區完成之後,使用partprobe命令將分區信息加載到內核

[[email protected] ~]# partprobe /dev/xvdb

註:如果分區過程中輸入錯誤,可以使用快捷鍵Ctrl+u退回

2、parted分區過程

parted用於對磁盤(或RAID磁盤)進行分區及管理,與fdisk分區工具相比,支持2TB以上的磁盤分區,並且允許調整分區的大小。可以使用交互式或者非交互式來為磁盤分區。

  • 交互式分區:

1)選擇所需要用parted分區的磁盤:parted/dev/xvdb

[[email protected] ~]# parted /dev/xvdb
GNU Parted 2.1
Using /dev/xvdb
Welcome to GNU Parted! Type ‘help‘ toview a list of commands.
(parted)

2)查看幫助:help

(parted) help                                                            
 align-check TYPE N                       check partition N for TYPE(min|opt) alignment
 check NUMBER                            do a simple check on the file system
 cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER  copy file system to another partition
 help [COMMAND]                          print general help, or help on COMMAND
  mklabel,mktable LABEL-TYPE               create a new disklabel(partition table)
  mkfs NUMBER FS-TYPE                      make a FS-TYPE file system onpartition NUMBER
  mkpart PART-TYPE [FS-TYPE] START END     make a partition
 mkpartfs PART-TYPE FS-TYPE START END    make a partition with a file system
 move NUMBER START END                   move partition NUMBER
 name NUMBER NAME                        name partition NUMBER as NAME
 print [devices|free|list,all|NUMBER]    display the partition table, available devices, free space, all
       found partitions, or a particular partition
 quit                                     exit program
 rescue START END                        rescue a lost partition near START and END
 resize NUMBER START END                 resize partition NUMBER and its file system
  rm NUMBER                                delete partition NUMBER
 select DEVICE                           choose the device to edit
 set NUMBER FLAG STATE                   change the FLAG on partition NUMBER
 toggle [NUMBER [FLAG]]                  toggle the state of FLAG on partition NUMBER
 unit UNIT                               set the default unit to UNIT
 version                                 display the version number and copyright information of GNU
       Parted

3)定義分區表格式:mklabel gpt (常用的有msdosgpt格式,msdos不支持2T以上容量的磁盤,所以大於2TB的磁盤選擇gpt分區格式)

(parted) mklabel gpt
Warning: The existing disk label on/dev/xvdb will be destroyed and all data on this disk will be lost. Do
you want to continue?
Yes/No? yes                                                              
(parted)

4)創建分區,名稱為p1:mkpart p1

(parted) mkpart p1                                                       
File system type?  [ext2]?

5)定義分區格式:ext2|ext3|ext4 ----centos6默認為ext4了,centos7xfs

File system type?  [ext2]? ext4                                          
Start?

6)定義分區起始位置(單位支持K,M,G,T)

7)定義分區結束位置(單位支持K,M,G,T)

Start? 1                                                                  
End? 10M

8)查看當前分區情況:print

(parted) print                                                            
Model: Xen Virtual Block Device (xvd)
Disk /dev/xvdb: 10.7GB
Sector size (logical/physical):512B/512B
Partition Table: gpt
 
Number Start   End     Size   File system  Name  Flags
 1     1049kB  10.5MB  9437kB              p1

9)以上步驟也結合為一個指令

mkpart primary 0 10

mkpart primary linux-swap 11 21 Ignore

mkpart logical ext4 22 32 Ignore

(parted) mkpart p1 0 10 Ignore                                           
Warning: The resulting partition is notproperly aligned for best performance.
(parted) mkpart p2 linux-swap 11 21Ignore                                          
Warning: The resulting partition is notproperly aligned for best performance.
(parted) mkpart logical ext4 22 32Ignore                                
Warning: The resulting partition is notproperly aligned for best performance.
(parted) print                                                           
Model: Xen Virtual Block Device (xvd)
Disk /dev/xvdb: 10.7GB
Sector size (logical/physical):512B/512B
Partition Table: gpt
 
Number Start   End     Size   File system  Name     Flags
 1     17.4kB  10.0MB  9983kB               p1
 2     11.0MB  21.0MB  10.0MB               p2
 3     22.0MB  32.0MB  10.0MB               logical

10)刪除分區:rm

(parted) rm                                                               
Partition number? 1

二、擴容swap分區

swap分區,即緩存交換空間,當計算機內存用完時,會用到這部分交換空間,否則服務器就不能正常工作。

  • 新建物理分區擴容swap

1)初始的swap空間

[[email protected] ~]# free -m
             total       used       free    shared    buffers     cached
Mem:           980         88        891          0         7         25
-/+ buffers/cache:         55        924
Swap:         2047         0       2047

2)利用fdisk或者parted新建一個磁盤分區

Command (m for help): p
 
Disk /dev/sdb: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261cylinders
Units = cylinders of 16065 * 512 =8225280 bytes
Sector size (logical/physical): 512bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes /512 bytes
Disk identifier: 0x393390bf
 
  Device Boot      Start         End      Blocks  Id  System
/dev/sdb1               1         261    2096451   83  Linux

3)將該分區格式化成swap分區:mkswap

[[email protected] ~]# mkswap /dev/sdb1
Setting up swapspace version 1, size =2096444 KiB
no label,UUID=d04b54dc-f068-4563-9a0d-33bacca1d4d5

4)將新建的分區加入swap內存中:swapon

[[email protected] ~]# swapon /dev/sdb1
[[email protected] ~]# free -m
             total       used      free     shared    buffers    cached
Mem:           980         90        890          0          7         25
-/+ buffers/cache:         57        923
Swap:         4095         0       4095

5)刪除新增的swap分區:swapoff

[[email protected] ~]# swapoff /dev/sdb1
[[email protected] ~]# free -m
             total       used       free    shared    buffers     cached
Mem:           980         89        891          0          7         25
-/+ buffers/cache:         56        924
Swap:         2047          0       2047
  • 使用文件構建swap

1)構建一個大小為2G的文件:ddif=/dev/zert of=/tmp/swap bs=1G count=2

[[email protected] ~]# dd if=/dev/zert of=/tmp/swap bs=1G count=2
[[email protected] ~]# ls -lh /tmp/swap
-rw-r--r-- 1 root root 2.0G Oct 14 11:45/tmp/swap

2)格式化文件為swap分區

[[email protected] ~]# mkswap /tmp/swap 
mkswap: /tmp/swap: warning: don‘t erasebootbits sectors
       on whole disk. Use -f to force.
Setting up swapspace version 1, size =2097148 KiB
no label,UUID=c8c89301-83ec-436d-9101-718ec5e401c9

3)將新建的分區加入swap內存中:swapon

[[email protected] ~]# swapon /tmp/swap 
[[email protected] ~]# free -m
             total       used       free    shared    buffers     cached
Mem:           980         79        901          0          5         21
-/+ buffers/cache:         52        928
Swap:         4095         3       4092

4)刪除新增的swap分區:swapoff

[[email protected] ~]# swapoff /tmp/swap
[[email protected] ~]# free -m
             total       used       free    shared    buffers     cached
Mem:           980         78        902          0          5         21
-/+ buffers/cache:         51       929
Swap:         2047         3       2044

三、格式化文件系統

新建硬盤分區之後,需要對硬盤進行格式化操作,以創建相應的文件系統,格式化過程如下:

1)查看系統支持的文件系統格式

[[email protected] ~]# ls/lib/modules/`uname -r`/kernel/fs
autofs4 cachefiles  configfs  dlm      exportfs  ext3 fat      fuse  jbd  jffs2  mbcache.ko  nfs_common nls       ubifs  xfs
btrfs   cifs        cramfs    ecryptfs ext2      ext4  fscache  gfs2 jbd2  lockd  nfs         nfsd        squashfs  udf

2)格式化成ext4系統

ext4是centos6系列默認的文件系統

[[email protected] ~]# mkfs -t ext4 -b 4096 -I 256 /dev/sdb1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
4016 inodes, 4008 blocks
200 blocks (4.99%) reserved for the super user
First data block=0
1 block group
32768 blocks per group, 32768 fragments per group
4016 inodes per group
Writing inode tables: done                            
Creating journal (1024 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 26 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

3)設置不檢查

[[email protected] ~]# tune2fs -c -1 /dev/sdb1
tune2fs 1.41.12 (17-May-2010)
Setting maximal mount count to -1

四、掛載磁盤到服務器

1)磁盤格式化完畢之後,需要掛載到系統目錄才能使用,掛載命令如下:

[[email protected] ~]# mount /dev/sdb1 /mnt
[[email protected] ~]# df -h
Filesystem      Size Used Avail Use% Mounted on
/dev/sda3        18G 3.8G   13G  23% /
tmpfs           491M     0 491M   0% /dev/shm
/dev/sda1       194M  29M  155M  16% /boot
/dev/sdb1       2.0G  35M  1.9G   2% /mnt3.6.3

2)取消掛載:

[[email protected] ~]# umount /dev/sdb1
[[email protected] ~]# df -h
Filesystem      Size Used Avail Use% Mounted on
/dev/sda3        18G 3.8G   13G  23% /
tmpfs           491M     0 491M   0% /dev/shm
/dev/sda1       194M  29M  155M  16% /boot

3)掛載CD或DVD光盤

mount -t iso9660 /dev/cdrom /mnt   #<==iso9660是光盤的格式

4)設置開機自動掛載

設置開機掛載文件非常有用,如果沒有設置,可能有些用到磁盤的服務就無法正常工作。

開機掛載硬盤文件:/etc/fstab

在文件末尾寫入:/dev/sdb1 /mnt ext3 dufaults 0 0

[[email protected] ~]# cat /etc/fstab 
#
# /etc/fstab
# Created by anaconda on Wed Aug  2 07:12:45 2017
#
# 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
#
UUID=e04ab670-2f2e-41de-906b-4067e2fa509e /                       ext4    defaults        1 1
UUID=c1fa18da-eacd-40b2-8046-7dbc584825c2 /boot                   ext4    defaults        1 2
UUID=0a1c2136-c98c-4c5b-bf12-a4ba2a6744cc 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

第一列:磁盤設備文件或者該設備的Label,UUID

第二列:設備的掛載點

第三列:文件系統的格式,包括ext2,ext3,ext4,reiserfs,nfs等

第四列:文件系統參數,一般選擇默認defaults

Async/sync

設置是否為同步方式運行,默認為async

auto/noauto

當下載mount -a 的命令時,此文件系統是否被主動掛載。默認為auto

rw/ro

是否以以只讀或者讀寫模式掛載

exec/noexec

限制此文件系統內是否能夠進行"執行"的操作

user/nouser

是否允許用戶使用mount命令掛載

suid/nosuid

是否允許SUID的存在

Usrquota

啟動文件系統支持磁盤配額模式

Grpquota

啟動文件系統對群組磁盤配額模式的支持

Defaults

同事具有rw,suid,dev,exec,auto,nouser,async等默認參數的設置

第五列:是否備份,一般自己掛載的選0

0

代表不要做dump備份

1

代表要每天進行dump的操作

2

代表不定日期的進行dump操作

第六列:是否開機檢查扇區,一般不檢查,選0

0

不要檢驗

1

最早檢驗(一般根目錄會選擇)

2

1級別檢驗完成之後進行檢驗

至此,磁盤的分區,格式化,掛載完畢!

linux學習筆記-磁盤分區、格式化與掛載