成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Linux 磁盤自檢 你了解嗎?

系統 Linux
在Linux系統中,有時候重啟會耗費非常長的時間,如果你進一步檢查細節,就會發現絕大部分時間都耗費在磁盤自檢(fsck)上了,有時候遇到時間比較緊急的情況,磁盤自檢耗費的時間非常長,真的是讓人心焦火急的!

[[375334]]

本文轉載自微信公眾號「DBA閑思雜想錄」,作者瀟湘隱者 。轉載本文請聯系DBA閑思雜想錄公眾號。  

在Linux系統中,有時候重啟會耗費非常長的時間,如果你進一步檢查細節,就會發現絕大部分時間都耗費在磁盤自檢(fsck)上了,有時候遇到時間比較緊急的情況,磁盤自檢耗費的時間非常長,真的是讓人心焦火急的!如下截圖所示

 

關于磁盤自檢,如果是新手,肯定都會有不少疑惑,下面從這幾個方面一一講述,希望能解答你的疑惑。下面實驗版本為Red Hat Enterprise Linux Server release 5.7,請注意不同版本之間的區別。

為什么磁盤需要自檢呢?

現在的文件系統已經非??煽浚瑯O少出現問題,但是總有意外或錯誤出現的概率,例如斷電、硬件失敗等,所以Linux會使用fsck來檢查和修復文件系統。fsck命令(filesystem consistency check),意思是文件系統一致性檢查。fsck能夠安全、自動修復下面這5類問題:

  • 未被引用的inode;
  • 難以置信的超大鏈接數
  • 沒有記錄在磁盤塊映射表中的未用數據塊
  • 列出的空閑數據塊還在某個文中使用;
  • 超級塊中不正確的匯總信息。

通常情況下,硬盤在啟動時使用fsck -p來進行檢查,它將檢查/etc/fstab中列出的所有本地文件系統。大多數系統設置為啟動時自動運行fsck,希望任何錯誤在系統使用前被檢測到,并得到修正。因為使用錯誤的文件系統可能使得問題變得更加糟糕。所以磁盤自檢是有必要的,這也是為什么大多數系統將其設置為啟動時自動運行fsck(有一定規律,不是每次啟動都會做磁盤自檢,取決于你的配置,下面闡述),所以沒有特殊必要的話,最好不要取消磁盤自檢。

什么時候磁盤才會自檢?

上面所述,并不是每次重啟都會做磁盤自檢,那么磁盤自檢的規律如何查看呢?此時需要借助tune2fs命令

  1. [root@DB-Server ~]# tune2fs -l /dev/sda2 | grep -E "Maximum mount count|Check interval" 
  2. Maximum mount count:      -1 
  3. Check interval:           604800 (1 week) 
  4. [root@DB-Server ~]#  

 

如上所示,Check interval表示執行磁盤自檢fsck的時間間隔,Maximum mount count表示強制自檢的掛載次數,即達到最大掛載次數后,再次開機時就會強制自檢。上面信息告訴我們,磁盤自檢的時間間隔為一周,也就是7天。Maximum mount count 值為-1表示禁用這個功能。

如何更改磁盤自檢設置?

假如我要將磁盤自檢的時間間隔設置為一個月,那么可以如下設置

  1. [root@DB-Server ~]# tune2fs -l /dev/sda2 | grep -i -E 'mount|check' 
  2. Last mounted on:          <not available> 
  3. Default mount options:    user_xattr acl 
  4. Last mount time:          Mon Jul  4 11:30:54 2016 
  5. Mount count:              94 
  6. Maximum mount count:      -1 
  7. Last checked:             Sun Jan  4 21:34:24 2015 
  8. Check interval:           604800 (1 week) 
  9. Next check after:         Sun Jan 11 21:34:24 2015 
  10. [root@DB-Server ~]# tune2fs -i 30 /dev/sda2 
  11. tune2fs 1.39 (29-May-2006) 
  12. Setting interval between checks to 2592000 seconds 
  13. [root@DB-Server ~]# tune2fs -l /dev/sda2 | grep -i -E 'mount|check' 
  14. Last mounted on:          <not available> 
  15. Default mount options:    user_xattr acl 
  16. Last mount time:          Mon Jul  4 11:30:54 2016 
  17. Mount count:              94 
  18. Maximum mount count:      -1 
  19. Last checked:             Sun Jan  4 21:34:24 2015 
  20. Check interval:           2592000 (1 month
  21. Next check after:         Tue Feb  3 21:34:24 2015 
  22. [root@DB-Server ~]#  

 

如果我要設置磁盤掛載2次就必須進行磁盤自檢,那么可以如下設置:

  1. [root@DB-Server ~]# tune2fs -l /dev/sda2 | grep -i -E 'mount|check' 
  2. Last mounted on:          <not available> 
  3. Default mount options:    user_xattr acl 
  4. Last mount time:          Mon Jul  4 11:30:54 2016 
  5. Mount count:              94 
  6. Maximum mount count:      -1 
  7. Last checked:             Sun Jan  4 21:34:24 2015 
  8. Check interval:           2592000 (1 month
  9. Next check after:         Tue Feb  3 21:34:24 2015 
  10. [root@DB-Server ~]# tune2fs -c 2 /dev/sda2 
  11. tune2fs 1.39 (29-May-2006) 
  12. Setting maximal mount count to 2 
  13. [root@DB-Server ~]# tune2fs -l /dev/sda2 | grep -i -E 'mount|check' 
  14. Last mounted on:          <not available> 
  15. Default mount options:    user_xattr acl 
  16. Last mount time:          Mon Jul  4 11:30:54 2016 
  17. Mount count:              94 
  18. Maximum mount count:      2 
  19. Last checked:             Sun Jan  4 21:34:24 2015 
  20. Check interval:           2592000 (1 month
  21. Next check after:         Tue Feb  3 21:34:24 2015 
  22. [root@DB-Server ~]#  

 

當然,你也可以一起設置,如下所示

  1. [root@DB-Server ~]# tune2fs -i 60  -c 10 /dev/sda2 
  2. tune2fs 1.39 (29-May-2006) 
  3. Setting maximal mount count to 10 
  4. Setting interval between checks to 5184000 seconds 
  5. You have new mail in /var/spool/mail/root 
  6. [root@DB-Server ~]# tune2fs -l /dev/sda2 | grep -i -E 'mount|check' 
  7. Last mounted on:          <not available> 
  8. Default mount options:    user_xattr acl 
  9. Last mount time:          Mon Jul  4 11:30:54 2016 
  10. Mount count:              94 
  11. Maximum mount count:      10 
  12. Last checked:             Sun Jan  4 21:34:24 2015 
  13. Check interval:           5184000 (2 months) 
  14. Next check after:         Thu Mar  5 21:34:24 2015 
  15. [root@DB-Server ~]#  

如何取消磁盤自檢設置?

如何取消、關閉磁盤自檢呢?我們可以有下面幾種方式:

1:使用命令tune2fs -i 0 -c 0 取消磁盤自檢,如下所示

  1. [root@DB-Server ~]# tune2fs -l /dev/sda2 | grep -i -E 'mount|check' 
  2. Last mounted on:          <not available> 
  3. Default mount options:    user_xattr acl 
  4. Last mount time:          Mon Jul  4 11:30:54 2016 
  5. Mount count:              94 
  6. Maximum mount count:      10 
  7. Last checked:             Sun Jan  4 21:34:24 2015 
  8. Check interval:           5184000 (2 months) 
  9. Next check after:         Thu Mar  5 21:34:24 2015 
  10. [root@DB-Server ~]# tune2fs -i 0 -c 0 /dev/sda2 
  11. tune2fs 1.39 (29-May-2006) 
  12. Setting maximal mount count to -1 
  13. Setting interval between checks to 0 seconds 
  14. [root@DB-Server ~]#  
  15. [root@DB-Server ~]# tune2fs -l /dev/sda2 | grep -i -E 'mount|check' 
  16. Last mounted on:          <not available> 
  17. Default mount options:    user_xattr acl 
  18. Last mount time:          Mon Jul  4 11:30:54 2016 
  19. Mount count:              94 
  20. Maximum mount count:      -1 
  21. Last checked:             Sun Jan  4 21:34:24 2015 
  22. Check interval:           0 (<none>) 
  23. [root@DB-Server ~]#  

2:修改/etc/fstab中第六列的值

/etc/fstab分區表中第六列(pass):指明自檢順序。(0為不自檢,1或者2為要自檢,如果是根分區要設為1,其他分區只能是2)

  1. [root@DB-Server ~]# more /etc/fstab  
  2. LABEL=/                 /                       ext3    defaults        1 1 
  3. LABEL=/boot             /boot                   ext3    defaults        1 2 
  4. tmpfs                   /dev/shm                tmpfs   defaults        0 0 
  5. /dev/mapper/VolGroup01-LogVol00 /u02            ext3    defaults        0 2 
  6. /dev/VolGroup02/LogVol00   /u05                 ext3    defaults        1 2 
  7. #/dev/VolGroup03/LogVol00   /u06                 ext3    defaults        1 1 
  8. devpts                  /dev/pts                devpts  gid=5,mode=620  0 0 
  9. sysfs                   /sys                    sysfs   defaults        0 0 
  10. proc                    /proc                   proc    defaults        0 0 
  11. LABEL=SWAP-sda3         swap                    swap    defaults        0 0 
  12. [root@DB-Server ~]# more /etc/fstab  
  13. LABEL=/                 /                       ext3    defaults        1 0 
  14. LABEL=/boot             /boot                   ext3    defaults        1 0 
  15. tmpfs                   /dev/shm                tmpfs   defaults        0 0 
  16. /dev/mapper/VolGroup01-LogVol00 /u02            ext3    defaults        0 0 
  17. /dev/VolGroup02/LogVol00   /u05                 ext3    defaults        1 0 
  18. #/dev/VolGroup03/LogVol00   /u06                 ext3    defaults        1 0 
  19. devpts                  /dev/pts                devpts  gid=5,mode=620  0 0 
  20. sysfs                   /sys                    sysfs   defaults        0 0 
  21. proc                    /proc                   proc    defaults        0 0 
  22. LABEL=SWAP-sda3         swap                    swap    defaults        0 0 
  23. You have new mail in /var/spool/mail/root 
  24. [root@DB-Server ~]#  

關于這兩者的優先級,我測試過,即使已經滿足了Maximum mount count和Check interval里面的條件,如果在/etc/fstab里面關閉了磁盤自檢,那么在重啟時,并不會做磁盤自檢,也就是說/etc/fstab設置里面的優先級要高一些。

3:使用參數-f 跳過自檢

  1. [root@DB-Server ~]# shutdown -rf now 

這種方式是臨時的,不需要修改系統配置。

4:在/boot/grub/grub.conf 中添加fastboot,如下所示

  1. [root@DB-Server /]# cd /boot 
  2. [root@DB-Server boot]# ls 
  3. config-2.6.18-274.el5  grub  initrd-2.6.18-274.el5.img  lost+found  symvers-2.6.18-274.el5.gz  System.map-2.6.18-274.el5  vmlinuz-2.6.18-274.el5 
  4. [root@DB-Server boot]# cd grub/ 
  5. [root@DB-Server grub]# ls 
  6. device.map     fat_stage1_5  grub.conf         jfs_stage1_5  minix_stage1_5     splash.xpm.gz  stage2         vstafs_stage1_5 
  7. e2fs_stage1_5  ffs_stage1_5  iso9660_stage1_5  menu.lst      reiserfs_stage1_5  stage1         ufs2_stage1_5  xfs_stage1_5 
  8. [root@DB-Server grub]# more grub.conf  
  9. # grub.conf generated by anaconda 
  10. # Note that you do not have to rerun grub after making changes to this file 
  11. # NOTICE:  You have a /boot partition.  This means that 
  12. #          all kernel and initrd paths are relative to /boot/, eg. 
  13. #          root (hd0,0) 
  14. #          kernel /vmlinuz-version ro root=/dev/sda2 
  15. #          initrd /initrd-version.img 
  16. #boot=/dev/sda 
  17. default=0 
  18. timeout=5 
  19. splashimage=(hd0,0)/grub/splash.xpm.gz 
  20. hiddenmenu 
  21. title Red Hat Enterprise Linux Server (2.6.18-274.el5) 
  22.         root (hd0,0) 
  23.         kernel /vmlinuz-2.6.18-274.el5 ro root=LABEL=/ rhgb quiet 
  24.         initrd /initrd-2.6.18-274.el5.img  fastboot 
  25. You have new mail in /var/spool/mail/root 
  26. [root@DB-Server grub]#  

kernel /vmlinuz-2.6.18-274.el5 ro root=LABEL=/ rhgb quietinitrd /initrd-2.6.18-274.el5.img fastboot

如何強制下次重啟磁盤自檢?

如何強制系統下次root時,進行磁盤自檢?

方法1:使用tune2fs調整Maximum mount count和Check interval的值,使其下次重啟時滿足磁盤自檢。

方法2:關于這個,在RHEL中,你可以在/etc/rc.sysinit 中看到如下代碼(Debian or Ubuntu Linux下查看/etc/init.d/checkfs.sh)如下所示:

 

所以,你只需要創建一個forcefsck文件,下次重啟時,就能強制其進行磁盤自檢。

  1. [root@DB-Server /]#  touch /forcefsck 
  2. [root@DB-Server /]# reboot 
  3.   
  4. Broadcast message from root (pts/1) (Mon Jul  4 14:33:59 2016): 
  5.   
  6. The system is going down for reboot NOW! 

重啟過程中,你就會看到磁盤自檢。重啟后,你會發現剛才生成的forcefsck文件已經不見了。

 

方法3:使用shutdown相關參數強制磁盤自檢

  1. [root@DB-Server /]# man shutdown 

  1. # shutdown -rF now 

參考資料:

http://www.pc-freak.net/blog/changing-setting-33-times-standard-fsck-file-system-check-debian-linux-desktop-systems/

http://www.cyberciti.biz/faq/linux-force-fsck-on-the-next-reboot-or-boot-sequence/

www.cyberciti.biz/faq/linux-unix-bypassing-fsck/

 

責任編輯:武曉燕 來源: DBA閑思雜想錄
相關推薦

2017-01-16 15:20:03

Linux內核Oops

2022-07-26 00:00:22

HTAP系統數據庫

2012-09-06 17:54:28

2014-04-17 16:42:03

DevOps

2022-11-03 15:14:43

Linux文件權限

2014-11-28 10:31:07

Hybrid APP

2023-03-16 10:49:55

2020-02-27 10:49:26

HTTPS網絡協議TCP

2021-03-28 09:26:30

HttpHttp協議網絡協議

2019-09-16 08:40:42

2019-10-31 08:36:59

線程內存操作系統

2010-09-06 14:03:06

PPP身份認證

2021-01-15 07:44:21

SQL注入攻擊黑客

2021-11-09 09:48:13

Logging python模塊

2018-02-02 10:56:19

屏蔽機房擴建

2012-09-27 10:24:22

監控機房

2009-12-16 14:59:21

紅帽Linux認證

2023-11-06 07:23:06

API開發生態系統

2021-06-11 13:59:22

CSS原子類

2025-01-03 08:09:15

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: www.精品国产 | 日本三级在线视频 | 久久精品一区二 | 一级片在线视频 | 久久国产精品-国产精品 | 日本在线视频一区二区 | 亚洲欧洲精品一区 | 2020亚洲天堂 | 国产精品国产亚洲精品看不卡15 | 99re免费 | 欧美aⅴ在线观看 | 日韩在线一区二区 | 久操福利| 久久精品一区二区 | 99精品网| 99精品国自产在线观看 | 第四色影音先锋 | 成人av高清 | 无码一区二区三区视频 | 丁香六月伊人 | 天堂色 | 99久久久无码国产精品 | 超碰在线人| 一级片av | 日韩av免费在线电影 | 精品久久香蕉国产线看观看亚洲 | 成人免费视频一区二区 | 亚洲欧美在线观看 | 一区二区三区中文字幕 | 精品欧美乱码久久久久久1区2区 | 国产三区精品 | 在线视频a | 中文字幕视频在线观看 | 成人综合一区 | 欧美综合国产精品久久丁香 | 国产一区| 精品国产高清一区二区三区 | 亚洲成人中文字幕 | 欧美精品在线一区 | 中文字幕亚洲区一区二 | www.亚洲免费|