0.

RHEL磁盘修复_数据块RHEL磁盘修复_centos_02

1.基础工具:e2label /device/xxx [new label name] 显示/设定设备的label名称

2.e2fsck 修复工具,用-b 指定备用的superblock位置

3.mke2fs –n /devce/xxx 模拟创建ext文件系统


4.mount –L labelname /path 用label名称mount

5.tune2fs 查看/调整硬盘有关参数

类似命令为dumpe2fs

tune2fs –l /device/xxx 等价于dumpe2fs –h /dev/xxx

-l <device> 查看文件系统信息

-c <count> 设置强制自检的挂载次数

-i <n day> 设置强制自检的间隔时间

-m <percentage> 保留块的百分比

保留块:是为管理员保留的磁盘管理空间,为防止磁盘空间剩余太少以致管理员无法编辑配置文件而设置的,默认是总数据块的

5%。

Maximum mount count : 多少次mount后做fsck检查
Check interval : 两次fsck检查的间隔时间
如果文件系统达成max_mount_counts或者check_interval的某一个条件,都会执行文件系统检查。

6.fstab中用label名称mount 的格式范例:

/dev/mapper/vg_centos6-lv_root /            ext4    defaults        1 1

UUID=0d06ebad-ea73-48ad-a50a-1b3b8ef24491 /boot  ext4    defaults        1 2

/dev/mapper/vg_centos6-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

LABEL=/backup /backup      ext4    defaults        1 2

后面的1 2的作用: 分别表示dump_freq和pass_no

dump_freq - 该选项被"dump"命令使用来检查一个文件系统是否需要转储,若不需要转储就设置该字段为0

pass_no - 该字段被fsck命令用来决定在启动时需要被扫描的文件系统的顺序,根文件系统"/"对应该字段的值应该为1,其他文件系统应该为2。若该文件系统无需在启动时扫描则设置该字段为0

7.如何添加新硬盘

​http://www.techotopia.com/index.php/Adding_a_New_Disk_Drive_to_a_CentOS_6_System​

文件系统的优化:

mkfs.ext3 -b 1024 /dev/sda

文件的大小来决定数据块的大小

文件很大,但是数据块很小,影响读取的速度

文件很小,但是数据块很大,浪费数据块

索引节点:

每个节点使用多少个block数据块

mkfs.ext3 -b 4096 -i 8192 /dev/sdb1 每两个block编一个号

查看tune2fs –l /dev/sdb1 验证inode和block大小的关系,如图block_size为4096,Inode count为Block count的四分之一.

Filesystem volume name:   /tmpfile

Last mounted on:          <not available>

Filesystem UUID:          26945a37-fd2a-4bfc-802f-65b75b7e0967

Filesystem magic number:  0xEF53

Filesystem revision #:    1 (dynamic)

Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize

Filesystem flags:         signed_directory_hash

Default mount options:    (none)

Filesystem state:         clean

Errors behavior:          Continue

Filesystem OS type:       Linux

Inode count:              655360

Block count:              2621184

Reserved block count:     131059

Free blocks:              2421499

Free inodes:              655347

First block:              0

Block size:               4096

Fragment size:            4096

Reserved GDT blocks:      639

Blocks per group:         32768

Fragments per group:      32768

Inodes per group:         8192

Inode blocks per group:   512

Flex block group size:    16

Filesystem created:       Thu May 22 20:51:54 2014

Last mount time:          Fri May 23 23:01:56 2014

Last write time:          Fri May 23 23:01:56 2014

Mount count:              2

Maximum mount count:      21

Last checked:             Fri May 23 20:04:53 2014

Check interval:           15552000 (6 months)

Next check after:         Wed Nov 19 20:04:53 2014

Lifetime writes:          291 MB

Reserved blocks uid:      0 (user root)

Reserved blocks gid:      0 (group root)

First inode:              11

Inode size:               256

Required extra isize:     28

Desired extra isize:      28

Journal inode:            8

Default directory hash:   half_md4

Directory Hash Seed:      b451e506-1ef1-4ce3-ac3e-62e1385536ab

Journal backup:           inode blocks

8.非正常关机的自动磁盘修复配置(如果文件系统规模小)

如果由于种种原因,服务器非正常关机了,比如死机、强制关机或复位、突然断电等,如果有正在打开的文件,很可能发生文件系统的一些错误,检查文件系统并修复错误的命令是著名的 fsck。通过创建 /etc/sysconfig/autofsck 文件,设置如下内容,能够在非正常关机后,系统启动时自动运行 fsck 命令来检查并修复文件系统错误:

# 启动自动检查的功能

AUTOFSCK_DEF_CHECK=yes

# 对所有的提示都回答 yes

PROMPT=yes

9.blkid对系统的块设备(包括交换分区)所使用的文件系统类型、LABEL、UUID等信息进行查询


10.修复错误等需要进入single user mode时候root分区是只读,如何修改成可读写

mount –o remount,rw / [-force]

11.简单数学计算

Abstract :

1)  Linux shell 中使用 let , [ ] ,(( )) 三种运算符操作 shell 变量进行简单的基本运算;

2)Linux shell 中使用 expr 与 bc 两个程序实现高级运算;

expr 2 + 2 显示结果为4. 注意语法 expr arg1 operator arg2

expr只能计算整数.

bc可以计算浮点数bc 命令使用 标准输入 stdin 作为输入

echo "scale=3;3*4;5+2;5^2;18/4" |bc

显示结果为:

12

7

25

4.500

echo "scale=3;131059/2621184"|bc

显示结果为

.049

​echo​​​ ​​"(6+2)*3"​​​ ​​|​​​​bc​

​使用let,使用 let 的时候,我们不使用 $ 符号引用变量。​

[root@rhel ~]# no1=1

[root@rhel ~]# no2=2

[root@rhel ~]# let result=no1+no2

[root@rhel ~]# echo $result

3

[root@rhel ~]# printf "let result=%d\n" $result;

let result=3

let no1++;

let no2--;

let no1+=3;

let no2-=5;

12.列文件的时候文件名闪烁一般表示文件有问题.例如链接的文件失效了.

一般是文件丢失会造成很多红色闪烁的文件和目录名出现,这些文件和目录名通常是失效的链接。

硬链接无法针对不同分区的文件做链接,软链接可以.

软链接可以跨分区对文件和目录做链接.用来解决分区空间不足.

例如可以解决/home空间不足,而/var空间足够的问题.备份删除/home,建立/var/home到/home目录软链接即可.





13.job前台后台程序查看,调节

ping localhost > file &

jobs

top

ctrl+z(暂停)

jobs –l

fg %1 挂到前台,1为任务编号

bg %1

kill %3


14.小技巧

mkdir -m 0700 xxx 建立目录同时制定权限

cp(mv) –b xx path 當目的檔已存在時,則先行對其做備份,然後再進行搬移的動作。

umask 查询当前的umask值,一般为022,则权限为755

15.SUID,SGID,stick bit


S或s的值为4在owner上出现

那「s」及「S」有何差別呢 ? 如果是小寫的 s,表示檔案擁有者原來就具備 x 權限,如是大寫的 S,就代表檔案擁有者原先不具有 x 權限,所以 rwsr-xr-x,用數字表示就是 4755 啦。

舉例來說,比如使用者 barry 執行 passwd 程式來變更自己的密碼時,就是因為 passwd 具有 SUID 的屬性,所以當 barry 在執行 passwd 程式時所具有的權限,是與這支程式的擁有者 root 所擁有的權限是一樣的,否則如何將編碼後的密碼寫入 /etc/shadow 呢 ? 因為在一般情況下,使用者對 shadow 檔是不具任何存取權限的。


SGID应用于目录的意思就是用户xx在具有SGID属性的目录下建立一个文件,则新文件的组不会是xx用户所在组,而是SGID目录的组.


t :设置粘着位,一个文件可读写的用户并一定相让他有删除此文件的权限,如果文件设置了t权限则只用属主和root有删除文件的权限,通过chmod +t filename 来设置t权限。

设置方法,例

chmod 1770 xxx

chmod 1777 xxx


----------------------------------------------------------------------------------------------------------------------------

vmware workstation下的RHEL6.5,安装的Oracle,

新添加了一个10GB的硬盘/dev/sdb1,mount到/tmpfile,方便从此处添加TEMP表空间的文件.

启动的时候遇到如下错误




后来折腾半天,原来是fstab中的格式错误我写成了

/tmpfile /dev/sdb1 ext4 defaults 1 2

应该是LABEL=/tmpfile /tmpfile ext4 defaults 1 2