在LINUX中启动程序或服务时,提示 read-only file system
- 格式:docx
- 大小:13.78 KB
- 文档页数:1
LINUX中GRUB故障排除GRUB的安装分为两个主要的步骤:stage1和stage2。
stage1是一段嵌入MBR的迷你代码。
stage2是主要部分,在stage1把控制权传递给它后,就由它来接管所有事情。
install后面必须指定stage1的位置,这里假设Fedora Core7安装在/dev/sda2,则其分区位置为(hd0,6),因为GRUB能读取文件系统,所以还指定了分区上目录位置:/boot/grub/stage1,参数d表示stage1将寻找stage2所在的磁盘。
接着就是GRUB的安装位置:(hd0),这里就是指安装在MBR(主引导记录)。
后面的参数指定stage2的位置:(hd0,1)。
参数p指定menu.lst文件的位置。
.1.2 故障002使用GRUB引导Windows系统失败开机后GRUB启动Windows系统失败。
GRUB是一个功能强大的引导软件,可以同时支持Linux和Windows系统,当机器安装的Windows系统无法成功在GRUB引导下启动,而只是出现"grub>命令提示符"时,GRUB启动Windows系统失败。
这是对应入口Fedora(2.6.20-2925.9.fc7xen)的具体引导命令,包括挂载根目录命令root,加载内核命令kernel,还有加载模块命令module。
回车进入救援模式。
(2)系统会检测硬件,引导光盘上的Linux环境,依次提示选择救援模式下使用的语言(建议选择默认的英文即可,因为部分Linux系统选择中文会出现乱码);键盘设置用默认的"us"就好;网络设置可以根据需要,大部分故障修复不需要网络连接,可不进行此项设置,选择"No"。
(3)接下来系统将试图查找根分区。
重新启动电脑,系统恢复完毕。
此命令执行时不能将文件直接恢复至/etc目录,只能提取到当前目录下,且恢复的文件名称所在路径要写完整的绝对路径。
Linux 下的read命令对于写bash脚本的朋友,read命令是不可或缺的,需要实践一下就可以了解rea d命令的大致用途:编写一个脚本:#!/bin/bash# hao32 test readecho -e "Please enter your test :"read TESTREADecho $TESTREAD试着运行下这个脚本,你就可以大致了解read命令的用法,下面是转载一篇read 命令详细的用法,大家参考参考啊,呵呵作用从标准输入中读取一行。
语法read [ -p ][ -r ][ -s ][ -u[ n ] ] [ VariableName?Prompt ][ VariableName ... ]描述read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给shell 变量,用IFS(内部字段分隔符)变量中的字符作为分隔符。
VariableName 参数指定s hell 变量的名称,shell 变量获取输入行一个字段的值。
由VariableName 参数指定的第一个shell 变量指定给每一个字段的值,由VariableName 参数指定的第二个she ll 变量指定给第二个字段的值,以此类推,直到最后一个字段。
如果标准输入行的字段比相应的由VariableName 参数指定的shell 变量的个数多,把全部余下的字段的值赋给指定的最后的shell 变量。
如果比shell 变量的个数少,则剩余的shell 变量被设置为空字符串。
注意:如果省略了VariableName 参数,变量REPLY 用作缺省变量名。
由read 命令设置的shell 变量影响当前shell 执行环境。
标志-p 用|& (管道,&的记号名称)读取由Korn shell 运行的进程的输出作为输入。
注:-p 标志的文件结束符引起该进程的清除,因此产生另外一个进程。
-r 指定读取命令把一个\ (反斜杠) 处理为输入行的一部分,而不把它作为一个控制字符。
linux shell read用法摘要:一、Linux Shell 概述二、Shell 命令简介三、read 命令的基本用法1.read 命令的作用2.read 命令的语法3.read 命令的参数四、read 命令的实例应用1.读取用户输入2.读取文件内容3.文件内容处理五、read 命令与管道符的结合使用六、read 命令的注意事项正文:Linux Shell 是一个强大的命令行界面,用户可以通过Shell 来与操作系统进行交互。
Shell 命令是Linux 系统中的一种重要操作方式,其中read 命令是一个常用的交互式命令,用于从标准输入读取数据。
read 命令的基本用法如下:```read [选项] [参数]```其中,选项包括:- -p:在提示符前显示一个字符串- -s:静默模式,禁止显示错误信息参数包括:- 变量名:用于存储读取到的数据,可以是一个或多个变量名read 命令的作用是从标准输入读取一行数据,并将读取到的数据存储到指定的变量中。
在实际应用中,read 命令常用于获取用户的输入,以及读取文件内容。
下面通过几个实例来详细介绍read 命令的应用:1.读取用户输入```echo "请输入您的名字:"read nameecho "您好,$name!"```这段代码会显示一个提示信息,要求用户输入名字。
然后使用read 命令读取用户输入的内容,并将其存储在变量name 中。
最后,通过echo 命令输出欢迎信息。
2.读取文件内容```#!/bin/bashfile="example.txt"echo "文件内容:"read content < "$file"echo "文件内容已读取:$content"```这段代码首先定义了一个文件变量file,然后使用read 命令读取文件example.txt 的内容,并将其存储在变量content 中。
Linux-权限管理(⽂件权限)Linux - 权限管理(⽂件权限)⼀:基本权限1.基本权限介绍基本权限类型类型全拼释义权限位r read可读4w write可写2x execute可执⾏1权限的归属归属字母属主u属组g其他⽤户o2.设置权限修改属主、属组# 修改⽂件:1.txt的属主为:darker 属组为:human[root@localhost ~]# chown darker.human 1.txt# 修改⽂件:1.txt的属主为:darker[root@localhost ~]# chown darker 1.txt# 修改⽂件:1.txt的属组为:human[root@localhost ~]# chown .human 1.txt# 递归修改⽬录:file1的属主为:darker 属组为:human[root@localhost ~]# chown -R darker.human file1修改u、g、o对应的权限# 加减法# 修改⽂件:1.txt的权限为:属主为u 属组为w[root@localhost ~]# chmod u+x,g-w 1.txt# 赋值法# 修改⽂件:1.txt的权限为:所有⽤户为rwx[root@localhost ~]# chmod a=rwx 1.txt# 修改⽂件:1.txt的权限为:-[root@localhost ~]# chmod a=- 1.txt# 修改⽂件:1.txt的权限为:属主属组为rw 其他⽤户为r[root@localhost ~]# chmod ug=rw,o=r 1.txt# 数字# 修改⽂件:1.txt的权限为:所有⽤户的权限为rwx[root@localhost ~]# chmod 7771.txt# 递归修改⽬录:file1的权限为:所有⽤户的权限为rwx[root@localhost ~]# chmod 777 file1注意:把某⼀个⾮属主⽤户添加到⽂件的属组⾥,他就拥有了该组的权限,⽽不再是其他⼈权限对⽂件/⽬录的意义⽂件:ls -l ⽂件名权限释义r可以cat读取⽂件内容w可以修改⽂件x 可以执⾏⽂件代码,如果该⽂件的代码是编译好的结果那么只有x权限即可执⾏但如果该⽂件的代码是⼀个解释型的脚本程序则需要配合r权限才可执⾏⽬录:ls -dl ⽂件名权限释义r可以ls浏览⽂件下的内容w可以在⽬录下创建新⽂件or⽬录x 可以执⾏⽬录下的程序,除了对⽬录有执⾏权限外,还要对程序⽂件有执⾏权限才⾏可以正常cd切换到⽬录下涉及到多层⽬录如/a/b/c,需要对每⼀级都有x权限才可以正常⾛到下⼀级对⽂件夹的操作(不操作⽂件内容),需要当前⽤户具备的权限对沿途所有⽂件夹有x权限对⽬标⽂件夹有r或w权限权限释义r可以浏览w可以创建、删除、移动⼦⽂件和⼦⽬录对⽂件的操作(操作⽂件内容),需要当前⽤户具备的权限对沿途所有⽂件夹有x权限对⽬标⽂件有r或w权限权限释义r可以读取⽂件内容w可以修改⽂件内容注意点:vim修改的原理是将原⽂件删掉,然后再将内容的内容覆盖写⼊了新⽂件,新⽂件名重命名为原⽂件名验证vim修改的原理# (root⽤户)切换到/usr/local⽬录[root@localhost local]# cd /usr/local# (root⽤户)递归创建test01/dir1⽬录[root@localhost local]# mkdir -p test01/dir1# (root⽤户)递归修改⽬录test01权限为733[root@localhost local]# chmod -R 733 test01# (root⽤户)在test01⽬录下创建1.txt并写⼊内容“123”[root@localhost local]# echo "123" > test01/1.txt# (root⽤户)查看1.txt的内容[root@localhost local]# cat test01/1.txt123# (root⽤户)查看test01⽬录下的⽂件1.txt的详情信息:其他⽤户只有(r)读的权限[root@localhost local]# ll test01/1.txt-rw-r--r--. 1 root root 4 Nov 2510:02 test01/1.txt# (root⽤户)查看test01⽬录下的⽂件1.txt的iNode信息[root@localhost local]# stat test01/1.txtFile: ‘test01/1.txt’Size: 4 Blocks: 8 IO Block: 4096 regular fileDevice: fd00h/64768d Inode: 23609 Links: 1Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)Context: unconfined_u:object_r:usr_t:s0Access: 2020-11-2510:02:58.471562017 -0500Modify: 2020-11-2510:02:58.471562017 -0500Change: 2020-11-2510:02:58.471562017 -0500Birth: -# 切换到其他⽤户/⽤其他⽤户登录PS C:\Users\Darker> ssh darker@192.168.50.101darker@192.168.50.101's password:[darker@localhost ~]$ whoamidarker# (普通⽤户)⽤vim打开/usr/local/test01⽬录下的1.txt[darker@localhost ~]$ vim /usr/local/test01/1.txt123~~~"/usr/local/test01/1.txt" [readonly] 1L, 4C 1,1 All # [readonly] 只读# 按i进⼊插⼊模式-- INSERT -- W10: Warning: Changing a readonly file# (普通⽤户)修改1.txt的内容,强制保存并退出456Esc:wq!# 回到原来的root⽤户的窗⼝# (root⽤户)查看1.txt的内容[root@localhost local]# cat test01/1.txt456# (root⽤户)查看test01⽬录下的⽂件1.txt的详情信息:属主和属主变了[root@localhost local]# ll test01/1.txt-rw-r--r--. 1 darker darker 4 Nov 2510:21 test01/1.txt# (root⽤户)查看test01⽬录下的⽂件1.txt的iNode信息[root@localhost local]# stat test01/1.txtFile: ‘test01/1.txt’Size: 4 Blocks: 8 IO Block: 4096 regular fileDevice: fd00h/64768d Inode: 23609 Links: 1Access: (0644/-rw-r--r--) Uid: ( 1000/ darker) Gid: ( 1000/ darker)Context: unconfined_u:object_r:usr_t:s0Access: 2020-11-2510:30:54.822530748 -0500Modify: 2020-11-2510:21:17.823541511 -0500Change: 2020-11-2510:21:17.824541511 -0500Birth: -结论vim修改⽂件时:会将原⽂件删除,⽣成新的⽂件,属主和主组会变成修改的那个⽤户和⽤户所在的组⼆:特殊权限权限权限位SUID4SGID2权限权限位SBIT1SUID1.疑问普通⽤户既不是root也不属于root组,因此它对/etc/shadow⽂件没有任何权限(全是---)# 查看/etc/shadow信息[darker@localhost ~]# ll /etc/shadow----------. 1 root root 970 Nov 2407:29 /etc/shadow但是:普通⽤户为何可以⽤passwd直接修改密码?并且修改的是/etc/shadow⽂件,如何实现的?[darker@localhost ~]$ ll `which passwd`-rwsr-xr-x. 1 root root 27832 Jun 102014 /usr/bin/passwd这⾥可以看到,本应为rwx的第三个x变成了s,这就是s权限2.s权限的特殊之处SUID权限仅对⼆进制可执⾏⽂件有效(对⽬录⽆效)如果执⾏者对于该⼆进制可执⾏⽂件具有x的权限,执⾏者将具有该⽂件的所有者的权限本权限仅在执⾏该⼆进制可执⾏⽂件的过程中有效3.权限设定的⽅法字母表⽰法chmod u+s 可执⾏⽂件 # 给属主添加s权限chmod u-s 可执⾏⽂件 # 删除属主的s权限数字表⽰法(第1位4表⽰SUID,后3位表⽰普通权限 rwx)chmod 4755可执⾏⽂件 # 添加SUID权限到⼆进制可执⾏⽂件chmod 0xxx ... # 可以删除⽂件的SUID(但是⽆法删除⽬录的SUID)4.实例# (root⽤户)查看which cat[root@localhost ~]# ll `which cat`-rwxr-xr-x. 1 root root 54048 Nov 202015 /usr/bin/cat# (普通⽤户)查看/etc/shadow:没有权限(普通⽤户虽然是r-x,但是⽆法直接查看)[darker@localhost local]$ cat /etc/shadowcat: /etc/shadow: Permission denied# (root⽤户)修改 which cat 权限[root@localhost ~]# chmod u+s `which cat` # 或者 chmod 4755 `which cat`#(root⽤户)再次查看which cat[root@localhost ~]# ll `which cat`-rwsr-xr-x. 1 root root 54048 Nov 202015 /usr/bin/cat# (普通⽤户)查看/etc/shadow:有权限了[darker@localhost local]$ cat /etc/shadowroot:$6$Jvw3z/jmU1ASO4P1$vpTJ5OGEtfBOmIpjyK55k87iQPHXCC3.kKOFW9jkyslqC2DMdN7SZdT/zYRfmQ4hBAQXG6CQ4kKdRQ8eFqChf.::0:99999:7::: bin:*:16659:0:99999:7:::daemon:*:16659:0:99999:7:::adm:*:16659:0:99999:7:::lp:*:16659:0:99999:7:::...5.上例的⼯作原理环境前提:Linux中有1个⼆进制程序:cat,属组属组都是rootLinux中有⼀个系统⽂件:/etc/shadow,属组属组是: root:root有⼀个普通⽤户:darker普通⽤户:darker 属于其他⽤户,对⼆进制程序:cat 有执⾏(x)的权限普通⽤户:darker 对系统⽂件:/etc/shadow 没有任何权限默认情况下:普通⽤户:darker 执⾏⼆进制程序:cat系统会创建1个:cat进程该进程的属主属组是该程序的发起者:darker,也就是: darker:darkercat进程访问系统⽂件:/etc/shadowcat进程的属主和属主:darker:darker /etc/shadow⽂件的属主和属主:root:root⼆者的属主属组不匹配,所以被拒绝访问了:Permission denied给⼆进制程序:cat 设置SUID之后:普通⽤户:darker 执⾏⼆进制程序:cat系统会创建1个:cat进程执⾏者对于该⼆进制可执⾏⽂件具有 x 的权限,执⾏者将拥有该⽂件的属组的权限该进程属主是程序的发起者:darker,属组是cat原来的:root,属主属组就是:darker:rootcat进程访问系统⽂件:/etc/shadowcat进程的属主和属主:root:darker /etc/shadow⽂件的属主和属主:root:root⼆者的属主匹配,可以正常访问SGID1.权限设定的⽅法字母表⽰法chmod g+s ⽂件/⽬录 # 给⽂件/⽬录的属组添加s权限chmod g-s ⽂件/⽬录 # 删除⽂件/⽬录的属组的s权限数字表⽰法(第1位2表⽰SGID,后3位表⽰普通权限 rwx)chmod 2755⽂件/⽬录 # 给⽂件/⽬录的属组添加s权限chmod 0755⽂件/⽬录 # 删除⽂件/⽬录的属组的s权限chmod 755⽂件/⽬录 # 同上2.⽂件权限位的表⽰[root@localhost ~]# ll 1.txt-rwxr-sr-x. 1 root root 3243 Nov 2515:411.txt3.SGID相关说明作⽤在⼆进制可执⾏⽂件上时:执⾏有SGID权限的程序时,该⽤户将继承该程序的属组权限作⽤在⽬录上时:该⽬录下所有⽤户新建的⽂件都会⾃动继承该⽬录的属组当⼀个⽤户对某⼀⽬录有写和执⾏权限时,该⽤户就可以在该⽬录下建⽴⽂件如果该⽬录同时⽤SGID修饰,则该⽤户在这个⽬录下建⽴的⽂件都是属于这个⽬录的属组4.实例# (root⽤户)切换到/usr/loca/⽬录并创建⽬录:test02[root@localhost ~]# cd /usr/local[root@localhost local]# mkdir test02# (root⽤户)查看⽬录:test02 的信息[root@localhost local]# ls -dl test02/drwxr-xr-x. 2 root root 6 Nov 2514:19 test02/# !测试(root⽤户)在⽬录:test02 下创建⽂件:1.txt 并查看该⽂件的信息[root@localhost local]# touch /usr/local/test02/1.txt[root@localhost local]# ll /usr/local/test02/1.txt-rw-r--r--. 1 root root 0 Nov 2514:19 /usr/local/test02/1.txt# !测试(普通⽤户)在⽬录:test02 下创建⽂件:2.txt 并查看该⽂件的信息[darker@localhost ~]$ touch /usr/local/test02/2.txt[darker@localhost ~]$ ll /usr/local/test02/2.txt-rw-rw-r--. 1 darker darker 0 Nov 2514:20 /usr/local/test02/2.txt# (root⽤户)修改⽬录:test02 的权限[root@localhost local]# chmod 2773 test02# (root⽤户)再次查看⽬录:test02 的信息[root@localhost local]# ls -dl test02/drwxr-sr-x. 2 root root 6 Nov 2514:20 test02/# !测试(root⽤户)在⽬录:test02 下创建⽂件:3.txt 并查看该⽂件的信息[root@localhost local]# touch /usr/local/test02/3.txt[root@localhost local]# ll /usr/local/test02/3.txt-rw-r--r--. 1 root root 0 Nov 2514:21 /usr/local/test02/3.txt# !测试(普通⽤户)在⽬录:test02 下创建⽂件:4.txt 并查看该⽂件的信息[darker@localhost ~]$ touch /usr/local/test02/4.txt[darker@localhost ~]$ ll /usr/local/test02/4.txt-rw-rw-r--. 1 darker root 0 Nov 2514:21 /usr/local/test02/4.txtSBITSBIT 是the restricted deletion flag or sticky bit的简称,有时也称为Sticky,粘滞位SBIT 与 SUID 和 SGID 的关系并不⼤1.权限设定的⽅法字母表⽰法chmod o+t ⽂件/⽬录 # 给⽂件/⽬录的其他⽤户设置Stickychmod o-t ⽂件/⽬录 # 删除⽂件/⽬录的其他⽤户的Sticky数字表⽰法(第1位1表⽰添加Sticky位,后3位表⽰普通权限 rwx)chmod 1755⽂件/⽬录 # 给⽂件/⽬录的其他⽤户设置Stickychmod 0755⽂件/⽬录 # 删除⽂件/⽬录的其他⽤户的Stickychmod 755⽂件/⽬录 # 同上2.⽂件权限位的表⽰⽂件other位有x权限,并且⽤t代替了,表⽰被设置了Sticky如果other位没有x权限,会显⽰为⼤写T,表⽰有故障(权限⽆效)[root@localhost local]# ls -dl test03drwxr-xr-t. 2 root root 18 Nov 2514:34 dir013.相关说明对于⼀个多⼈可写的⽬录,如果设置了sticky,则每个⽤户仅能删除和改名⾃⼰的⽂件/⽬录只能作⽤在⽬录上,普通⽂件设置⽆意义,⽽且会被Linux内核忽略⽤户在设置 Sticky 权限的⽬录下新建的⽬录不会⾃动继承Sticky权限4.实例# (root⽤户)切换到 /usr/loca/⽬录[root@localhost ~]# cd /usr/local# (root⽤户)递归创建test03⽬录及2个⼦⽬录dir1和dir2[root@localhost local]# mkdir -p test03/dir{1,2}# (root⽤户)创建2个⽤户:user01、user02[root@localhost local]# useradd user01[root@localhost local]# useradd user02# (root⽤户)分别设置dir1和dir2的属主属组为user01和user02[root@localhost local]# chown -R user01:user01 test03/dir1[root@localhost local]# chown -R user02:user02 test03/dir2# (root⽤户)查看⽬录:test03的信息[root@localhost local]# ls -dl test03drwxr-xr-x. 4 root root 28 Nov 2515:37 test03[root@localhost local]# ll test03total 0drwxr-xr-x. 2 user01 user01 6 Nov 2515:37 dir1drwxr-xr-x. 2 user02 user02 6 Nov 2515:37 dir2# (root⽤户)修改⽬录:test03 的权限[root@localhost local]# chmod 1777 test03# (root⽤户)查看⽬录:test03的信息[root@localhost local]# ls -dl test03drwxrwxrwt. 4 root root 28 Nov 2515:37 test03[root@localhost local]# ll test03total 0drwxr-xr-x. 2 user01 user01 6 Nov 2515:37 dir1drwxr-xr-x. 2 user02 user02 6 Nov 2515:37 dir2# 切换到普通⽤户:user01[root@localhost local]# su - user01# !测试(普通⽤户)切换到test03⽬录[user01@localhost ~]$ cd /usr/local/test03# !测试(普通⽤户)查看当前⽬录下的信息[user01@localhost test03]$ lltotal 0drwxr-xr-x. 2 user01 user01 6 Nov 2515:37 dir1drwxr-xr-x. 2 user02 user02 6 Nov 2515:37 dir2# !测试(普通⽤户)⽤户user01将dir1重命名为dir11[user01@localhost test03]$ mv dir1 dir11# !测试(普通⽤户)⽤户user01将dir2重命名为dir22[user01@localhost test03]$ mv dir2 dir22mv: cannot move ‘dir2’ to ‘dir22’: Operation not permitted# !测试(普通⽤户)⽤户user01在dir11⽬录中创建⽂件:1.txt[user01@localhost test03]$ touch dir11/1.txt# !测试(普通⽤户)⽤户user01在dir2⽬录中创建⽂件:2.txt[user01@localhost test03]$ touch dir2/2.txttouch: cannot touch ‘dir2/2.txt’: Permission denied5.注意点SBIT ⽬前只对⽬录有效,⽤来阻⽌⾮⽂件的所有者删除⽂件:⽐较常见的例⼦就是/tmp⽬录权限信息中最后⼀位t表⽰该⽬录被设置了 SBIT 权限SBIT 对⽬录的作⽤是:当⽤户在该⽬录下创建新⽂件或⽬录时,仅有⾃⼰和 root 才有权⼒删除,主要作⽤于⼀个共享的⽂件夹(⽬录)三:chattr引⾔你是否遇到过⽂件或⽬录具有可读写权限,但是使⽤root⽤户删除、修改时提⽰"Operation not permitted"的情况?可能是由chattr设置了⽂件的隐藏保护权限导致通过chattr命令修改⽂件或⽬录属性能够提⾼系统的安全性与chmod命令相⽐,chmod只是改变⽂件的读写、执⾏权限,更底层的属性控制是由chattr命令改变的。
Read-only filesystem问题可能是由于磁盘损坏或文件系统错误导致的,解决的方法是通过fsck命令来检查和修复文件系统1。
具体的步骤如下:
•首先,你需要找出哪个分区是只读的,可以使用mount或df命令来查看。
•然后,你需要卸载只读分区,可以使用umount命令来执行。
•接着,你需要运行fsck命令来检查和修复只读分区,可以使用-f选项来强制检查,使用-y选项来自动修复错误。
•最后,你需要重新挂载分区,可以使用mount命令来执行。
例如,如果你的/home分区是只读的,你可以按照以下步骤操作:
# 查看/home分区
mount | grep /home
# 卸载/home分区
umount /home
# 检查和修复/home分区
fsck -fy /dev/sda2 # 假设/home分区对应/dev/sda2设备
# 重新挂载/home分区
mount /home
这样就可以解决Read-only filesystem问题了。
Linux文件系统只读Read-only file system的快速解决方法问题描述:Linux系统变成只读了,复制文件提示:Read-only file system,如图所示:问题原因:系统没有正常关机,导致虚拟磁盘出现文件系统错误;机器硬盘故障导致硬盘只读。
解决方法:使用fsck手动修复,具体操作如下:注:如果硬盘故障则需要更换硬盘。
重启系统后使用root进入单用户模式,运行fsck.ext3 -y /dev/vda3说明:ext3的文件系统使用fsck.ext3,ext4文件系统使用fsck.etx4。
/dev/vda3是系统/根分区。
运行完毕后,reboot重启系统就恢复正常。
20多台出问题的都是这样修复的,无失败案例。
fsck.ext3开始进入扫描、修正文件系统,这个过程有时很快,有时比较长,中间有数次停顿的过程,只需等待即可,千万不要以为死机而重启服务器。
修正完文件系统后,如果没有提示重启系统,也需要reboot来重启系统。
扩展知识:fsck简介fsck不仅可以对文件系统进行扫描,还能修正文件系统的一些问题。
注意的是fsck扫描文件系统时一定要在单用户模式、修复模式或把设备umount后进行。
建议在单用户模式下运行。
如果扫描正常运行中的系统,会造成系统文件损坏。
文件系统扫描工具有fsck、fsck.ext2、fsck.ext3、fsck.ext4、fsck.msdos、fsck.cramfs、fsck.ext4dev、fsck.vfat。
最好是根据不同的文件系统来调用不同的扫描工具,比如ext3的文件系统使用fsck.ext3,ext4文件系统使用fsck.ext4等。
/dev/vda3是ext3的文件系统,这里介绍fsck.ext3的参数:fsck.ext3[语法]fsck.ext3[必要参数][选择参数][设备代号][功能]fsck.ext3命令:针对ext3文件系统进行检测修复[执行权限]root[参数]必要参数-a非互交模式,自动修复-c检查是否存在有损坏的区块。
在检测到错误时,将Linux服务器上的⽂件系统配置成重启后的只读模式是常见做法。
不过,这种设置在结合使⽤VMware VI3时可能有意想不到的结果。
在发⽣错误时,Linux⽂件系统能配置成三种不同的模式: errors=continue / errors=remount-ro / errors=panic 这三种模式分别表⽰忽略错误并只标记⽂件系统错误继续运⾏,或者重启系统为只读,或者终⽌系统。
默认设置在⽂件系统superblock⾥,并能使⽤tune2fs(8)更改。
第⼀选择(继续运⾏)可能对包含⾮重要数据的系统管⽤,不过在给定的环境⾥让服务器在写⼊错误之后继续运⾏,就像什么都有发⽣过⼀样,这样是不太好的。
第三种选择如果检测到⽂件系统错误时,容易导致服务器到内核的终⽌运⾏。
不过,重启可能不能修复问题,并且现在服务器处于可更改状态,管理员很难知道服务器的状况。
⽂件系统的理想设置是在检测出错误时能重启成只读模式。
这样的话,管理员能诊断问题,采取合适的策略。
重启⽂件系统为只读有时有⼀点影响,或者有时能导致服务器不能正常停⽌运⾏。
例如,如果⼀台Linux Web服务器的/var/log⽂件系统重启为只读,这台服务器上的⼀些服务将终⽌功能,因为不能写⼊⽇志。
那么所有这⼀切与ESX有何关系? 路径故障问题 多数ESX安装为了共享存储⽽附属到存储区域络(SAN)上,并且这些服务器有多路径的倾向。
多路径是⽤于维持与SAN相连的⼀种技术,万⼀发⽣存储处理器、主机总线适配器、交换机,甚⾄光纤通道这样的故障时还能与SAN连接。
尽管ESX利⽤了多路径,不过在给定时间⾥只有⼀条路径可⽤。
如果路径失效,ESX开始发送和接收所有磁盘活动到另⼀条路径时会发⽣路径故障。
发⽣路径故障是常见的,可能⼀个⽉⼀次或两次。
⾸要问题是Linux虚拟机对ESX路径故障如何反应。
如果发⽣路径故障时,Linux虚拟机的磁盘写⼊正进⾏⼀半,ESX将通知虚拟机的虚拟SCSI控制器线路繁忙,并且指⽰控制器等待。
NFS⽹络⽂件系统详解第1章 NFS基本概述1.1 什么是nfsNFS是Network File System的缩写及⽹络⽂件系统。
主要功能是通过局域⽹络让不同的主机系统之间可以共享⽂件或⽬录。
NFS系统和Windows⽹络共享、⽹络驱动器类似, 只不过windows⽤于局域⽹, NFS⽤于企业集群架构中, 如果是⼤型⽹站, 会⽤到更复杂的分布式⽂件系统FastDFS,glusterfs,HDFS1.2 为什么要使⽤NFS服务进⾏数据存储1.实现多台服务器之间数据共享2.实现多台服务器之间数据的⼀致1.3 本地⽂件操作⽅式当⽤户执⾏mkdir命令, 该命令会通过shell解释器翻译给内核,由内核解析完成后驱动硬件,完成相应的操作。
1.4 NFS实现原理(需要先了解[程序|进程|线程])1.⽤户进程访问NFS客户端,使⽤不同的函数对数据进⾏处理2.NFS客户端通过TCP/IP的⽅式传递给NFS服务端。
3.NFS服务端接收到请求后,会先调⽤portmap进程进⾏端⼝映射。
4.nfsd进程⽤于判断NFS客户端是否拥有权限连接NFS服务端。
5.Rpc.mount进程判断客户端是否有对应的权限进⾏验证。
6.idmap进程实现⽤户映射和压缩7.最后NFS服务端会将对应请求的函数转换为本地能识别的命令,传递⾄内核,由内核驱动硬件。
rpc是⼀个远程过程调⽤,那么使⽤nfs必须有rpc服务1.5 NFS存储优点1.NFS⽂件系统简单易⽤、⽅便部署、数据可靠、服务稳定、满⾜中⼩企业需求。
2.NFS⽂件系统内存放的数据都在⽂件系统之上,所有数据都是能看得见。
1.6 NFS存储局限1.存在单点故障, 如果构建⾼可⽤维护⿇烦。
(web-》nfs()-》backup)2.NFS数据明⽂, 并不对数据做任何校验。
3.客户端挂载⽆需账户密码, 安全性⼀般(内⽹使⽤)1.7 ⽣产应⽤建议1.⽣产场景应将静态数据尽可能往前端推, 减少后端存储压⼒2.必须将存储⾥的静态资源通过CDN缓存(jpg\png\mp4\avi\css\js)3.如果没有缓存或架构本⾝历史遗留问题太⼤, 在多存储也⽆⽤第2章 NFS基本使⽤2.1 环境准备服务器系统⾓⾊外⽹IP内⽹IP主机名CentOS 7.5NFS服务端eth0:10.0.0.31eth1:172.16.1.31nfsCentOS 7.5NFS客户端eth0:10.0.0.7eth1:172.16.1.7web012.2 关闭防⽕墙及selinux(客户端,服务端都要关闭)2.2.1 关闭防⽕墙systemctl disable firewalldsystemctl stop firewalld2.2.2 关闭selinuxsed -ri '#^SELINUX=#cSELINUX=Disabled' /etc/selinux/configsetenforce 02.3 服务端安装nfs[root@nfs ~]# yum -y install nfs-utils2.3.1 配置nfs我们可以按照共享⽬录的路径允许访问的NFS客户端(共享权限参数)格式,定义要共享的⽬录与相应的权限。
(转)ubuntu⿊屏进⼊不了图形界⾯devsda1:clean,552599611123。
⼀)、修改boot启动项开始的时候电脑开不了机(开机之后,先是紫屏,再⼀直是⿊屏),重启了⼏次发现依旧如此,就修改了boot启动顺序,LEFI启动Leacy启动都试了;之后根据启动的瞬间屏幕亮出的in unsecure boot,也尝试改成不安全启动;有了效果,开机画⾯变了,然后出现了⼀个⿊框,嗯,就是最开头的图,可以输⼊内容、Enter键,但是不会执⾏,Ctrl+Alt+F2,居然能⽤,切换到TTY2界⾯,长舒了⼝⽓,还有救。
⼆)、修改grub 引导项(很多⼈通过这个解决了,但是这招对我没⽤)在⿊窗⼝⾥⾯(Ctrl+Alt+F2-7都⾏,输⼊⽤户名、密码),输⼊sudo gedit /etc/default/grub找到quiet splash并在后⾯添加nomodeset;修改前:GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"修改后:GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset“然后输⼊sudo update-grub再重启就⾏了。
如果出现⽆法使⽤sudo update-grub,⽐如:/usr/sbin/grub-mkconfig 1 /etc/default/grub i# not found解决⽅法: sudo cp /usr/share/grub/default/grub /etc/default/grub如果能进⼊到grub引导界⾯,就不⽤像上⾯那样胆战⼼惊了:以下为引⽤(其实就是照抄了,我单系统,看不到这个)开机后⾃动显⽰grub选项,提⽰要选择哪个操作系统的时候,默认选择光标是在第⼀⾏Ubuntu上的(整个第⼀⾏为⽩⾊)根据提⽰按e(edit的意思),可以看到,中下部分有⼀处写着“ro“,这才发现端倪所在:改成这样的”ro“是”read only“只读的意思,在操作系统的基础知识中,我们知道⼀个操作系统在开机启动的过程中,有些软件会需要在此时写⼊⼀些信息和数据到系统中,才能正常运⾏,这⾥写成了”ro“会导致开机的时候⼀些软件⽆法写⼊数据,导致⼀直等待可以写⼊的时机否则不进⾏下⼀步,从⽽系统⼀直等待⽆法启动。