7.Linux swap分区的使用,主引导记录(MBR)的备份、dd,df,du命令的使用

         对Linux而言,虚拟内存必须是独立的文件系统,因此只能用分区来提供虚拟内存。

 

root@ubuntu:~# fdisk-l
 
Disk /dev/sda: 21.5GB, 21474836480 bytes
255 heads, 63sectors/track, 2610 cylinders, total 41943040 sectors
Units = sectors of 1* 512 = 512 bytes
Sector size(logical/physical): 512 bytes / 512 bytes
I/O size(minimum/optimal): 512 bytes / 512 bytes
Disk identifier:0x0007ef80
 
 Device    Boot     Start         End      Blocks   Id   System
/dev/sda1   *       2048    39845887    19921920  83  Linux
/dev/sda2        39847934    41940991    1046529    5  Extended
/dev/sda3        39845888    39847933        1023  83  Linux
/dev/sda5        39849982    41940991    1045505   83  Linux
 
Partition tableentries are not in disk order


 

#每种分区的ID字段是不一样的,要想修改分区类型就要修改分区的ID

 

         修改分区类别:

root@ubuntu:~# fdisk/dev/sda
 
Command (m for help):m
Command action
   a  toggle a bootable flag
   b  edit bsd disklabel
   c  toggle the dos compatibility flag
   d  delete a partition
   l  list known partition types
   m  print this menu
   n  add a new partition
   o  create a new empty DOS partition table
   p  print the partition table
   q  quit without saving changes
   s  create a new empty Sun disklabel
   t  change a partition's system id
   u  change display/entry units
   v   verifythe partition table
   w  write table to disk and exit
   x  extra functionality (experts only)
 
Command (m for help):t
Partition number(1-5): 5
Hex code (type L to listcodes): 82            #修改/dev/sda5为swap分区(swap分区的标识为82)
Changed system typeof partition 5 to 82 (Linux swap / Solaris)
 
Command (m for help):w
The partition tablehas been altered!
 
Calling ioctl() tore-read partition table.
 
WARNING: Re-readingthe partition table failed with error 16: Device or resource busy.
The kernel still usesthe old table. The new table will be used at
the next reboot orafter you run partprobe(8) or kpartx(8)
Syncing disks.


 

修改分区属性之后,我们还要将/dev/sda5创建为swap文件系统才能使用:

root@ubuntu:~# mkswap/dev/sda5      #创建为swap文件系统
Setting up swapspaceversion 1, size = 1045500 KiB
no label,UUID=f33720ed-3b0c-46e1-a898-c7f4cb9adfb8


 

接下来就要启用swap分区,启用swap之前先查看当前内存的使用情况:

root@ubuntu:~# free –m         #-m:以MB方式显示内存大小
             total       used       free    shared    buffers     cached
Mem:        1000      777        222      0        133       362
-/+buffers/cache:                                       281        719
Swap:         0         0          0                 #此时swap分区的大小为0


 

启动swap分区:

root@ubuntu:~# swapon/dev/sda5       #启用/dev/sda5的swap分区
root@ubuntu:~# free –m                           #查看内存使用情况
             total       used       free    shared    buffers     cached
Mem:        1000       779        221      0        133        362
-/+buffers/cache:         282       718
Swap:        1020          0       1020            #此时swap分区的大小和/dev/sda5一样


 

比较swap分区大小和/dev/sda5分区大小:

root@ubuntu:~# fdisk-l
 
Disk /dev/sda: 21.5GB, 21474836480 bytes
255 heads, 63sectors/track, 2610 cylinders, total 41943040 sectors
Units = sectors of 1* 512 = 512 bytes
Sector size(logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal):512 bytes / 512 bytes
Disk identifier:0x0007ef80
 
   Device Boot      Start         End      Blocks     Id  System
/dev/sda1   *       2048    39845887    19921920  83  Linux
/dev/sda2        39847934    41940991    1046529    5  Extended
/dev/sda3        39845888    39847933        1023  83  Linux
/dev/sda5        39849982    41940991    1045505  82  Linux swap / Solaris
 
Partition tableentries are not in disk order


 

关闭swap:

root@ubuntu:~# swapoff –a            #关闭swap
root@ubuntu:~# free-m
             total       used       free    shared    buffers     cached
Mem:        1000        778       222          0     133        362
-/+buffers/cache:           282        718
Swap:          0          0          0


 

如果当前系统已经没有空闲磁盘空间用于创建分区了,又急着要扩展swap分区。Linux支持在某个文件系统上创建一个模拟的本地回环设备,来模拟一个磁盘使用。从一个文件系统的空闲空间中拿出一个G,创建一个本地回环设备(回环设备就是用软件模拟出来的设备),我们模拟出一个大小为1G的设备,把该设备创建成交换分区,也能使用。

创建本地回环设备的方法:dd命令。dd是复制命令,和copy类似,但是copy复制的是文件,而dd则是在二进制级别直接复制01代码,来创建文件,所以dd可以只复制文件的一部分,也可以指定复制磁盘的某个区域。

对任何磁盘来讲,最开头的512字节是主引导记录MBRMain BootRecord,我们要经常备份主引导记录,当磁盘崩溃时可以用主引导记录来恢复,但是主引导记录不是文件,所以要用dd命令来备份主引导记录。

dd命令使用例子:

root@ubuntu:~# dd if=/etc/issue of=/tmp/issue
0+1 records in
0+1 records out
23 bytes (23 B) copied, 5.4812e-05 s, 420 kB/s
#       复制/etc/issue到/tmp/issue,显示复制了23个字节
#       if指定source,of指定destination


dd命令常用方法:

1.      if:指定source

2.      of:指定destination

3.      bs:block size,指定块大小(复制时的最小单位,与文件系统的块大小无关)

4.      count:与bs结合使用,指定要复制多少count的bs

 

备份主引导记录:

root@ubuntu:~# dd if=/dev/sda of=/root/mbr.backup bs=512count=1
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.000182559 s, 2.8 MB/s


以后要是磁盘的MBR出错了,可以把该磁盘挂载到其他主机上,并且用mbr.backup来恢复磁盘。恢复mbr的方法;

root@ubuntu:~# dd if=/root/mbr.backup of=/dev/sda bs=512count=1
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.00245839 s, 208 kB/s
#不用指定开始位置,则默认从磁盘的0地址出开始


 

如果想删除磁盘上的所有分区,并重新规划:

dd     if=/dev/zero     of=/dev/sda     bs=512     count=1


#用泡泡机(不停的吐0)把主引导记录清零

 

用泡泡机做出一个128M的文件(bigfile),该文件就可以用作本地回环设备;

root@ubuntu:~# dd if=/dev/zero of=/root/bigfile bs=1Mcount=128
128+0 records in
128+0 records out
134217728 bytes (134 MB) copied, 3.93615 s, 34.1 MB/s


 

查看bigfile的大小:

root@ubuntu:/root# ll -h        #-h可以提高文件的可读性
total 129M
drwx------  9 rootroot 4.0K Jan 22 19:39 ./
drwxr-xr-x 23 root root 4.0K Jul 16  2015 ../
-rw-r--r--  1 rootroot 3.1K Apr 19  2012 .bashrc
-rw-r--r--  1 root root128M Jan 22 19:39 bigfile
drwx------  3 rootroot 4.0K Jul 16  2015 .cache/
drwx------  6 rootroot 4.0K Aug 31 06:11 .config/
drwxr-xr-x  5 rootroot 4.0K Jul 16  2015 .eclipse/
drwx------  2 rootroot 4.0K Jul 16  2015 .gvfs/
drwxr-xr-x  3 rootroot 4.0K Jul 16  2015 .local/
-rw-r--r--  1 rootroot  512 Jan 22 19:28 mbr.backup
drwxr-xr-x  3 rootroot 4.0K Jul 16  2015 .p2/
-rw-r--r--  1 rootroot  140 Apr 19  2012 .profile
drwx------  2 rootroot 4.0K Jan 22 18:29 .pulse/
-rw-------  1 rootroot  256 Jul 12  2015 .pulse-cookie


 

把bigfile做成swap分区:

root@ubuntu:/# mkswap /root/bigfile
Setting up swapspace version 1, size = 131068 KiB
no label, UUID=4bdfb5e8-1aff-450a-a658-31b945e2d4e8


 

启用bigfile:

root@ubuntu:/# swapon /root/bigfile


 

查看内存大小:

root@ubuntu:/# free -m
            total       used       free    shared    buffers     cached
Mem:        1000       862        138          0        134        460
-/+ buffers/cache:         267        733
Swap:         127         0        127


 

取消bigfile:

root@ubuntu:/# swapoff /root/bigfile
root@ubuntu:/# free -m
            total       used       free    shared    buffers     cached
Mem:         1000        862        138          0        134        460
-/+ buffers/cache:       267        733
Swap:           0          0          0


 

我们自己创建并挂载的文件系统在Linux重启之后并不会自动挂载,这是因为Linux启动后是检查配置文件来执行挂载命令的。这个配置文件是/etc/fstab。

7.Linux swap分区的使用,主引导记录(MBR)的备份、dd,df,du命令的使用_第1张图片

fstab文件有六个字段:

1.      设备名

2.      挂载点

3.      文件系统

4.      挂载选项,多个选项用逗号分隔

5.      完全备份的频率:0(从不备份),1(每天都做完全备份),2(每隔一天做完全备份)

6.      文件系统检测次序:0-9,0(不检测),1(首先检测,只能是根文件系统),以此类推

如果想让自己创建的文件系统开机挂载,直接编辑fstab文件:

7.Linux swap分区的使用,主引导记录(MBR)的备份、dd,df,du命令的使用_第2张图片

增加一条sda5的挂载记录,sda5就可以开机挂载了。

Swap分区的开机挂载方法:

7.Linux swap分区的使用,主引导记录(MBR)的备份、dd,df,du命令的使用_第3张图片

Proc和sysfs是虚拟文件系统。

 

df命令:

df - report filesystem disk space usage,查看文件系统使用情况。

root@ubuntu:~# df -h
Filesystem     Size  Used Avail Use% Mounted on
/dev/sda1       19G  8.3G  9.6G 47% /
udev           494M   12K  494M  1% /dev
tmpfs          201M  780K  200M  1% /run
none           5.0M     0  5.0M  0% /run/lock
none           501M  200K  501M  1% /run/shm


 

查看iNode的使用情况:

root@ubuntu:~# df -i
Filesystem      Inodes  IUsed IFree IUse% Mounted on
/dev/sda1     1245184 324308 920876   27% /
udev           126264    488 125776    1% /dev
tmpfs          128092    395 127697    1% /run
none           128092      5 128087    1% /run/lock
none           128092      7 128085   1% /run/shm


 

du命令:

df是用来查看文件系统使用情况的,而du则是用来查看单个文件使用磁盘的情况的。

du - estimate file space usage


ls命令只能显示子目录本身的大小,而无法显示子目录中包含的文件的大小。

root@ubuntu:~# du -s /etc      #-s:summary,显示目录中所有文件大小的总和
14672       /etc
 
root@ubuntu:~# du -sh /etc
15M /etc


你可能感兴趣的:(7.Linux swap分区的使用,主引导记录(MBR)的备份、dd,df,du命令的使用)