大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全家桶1年46,售后保障稳定
1./etc/fstab 文件介绍
/etc/fstab是用来存放文件系统的静态信息的文件。位于/etc/目录下,可以用命令less /etc/fstab 来查看,如果要修改的话,则用命令 vi /etc/fstab 来修改。当系统启动的时候,系统会自动地从这个文件读取信息,并且会自动将此文件中指定的文件系统挂载到指定的目录。
2.fstab文件示例
以下是CentOS5.Xfstab文件:
#
LABEL=/ / ext3defaults11
LABEL=/boot /boot ext3defaults12
tmpfs /dev/shm tmpfsdefaults00
devpts /dev/pts devptsgid=5,mode=62000
sysfs /sys sysfsdefaults00
proc /proc procdefaults00
LABEL=SWAP-sda2 swap swapdefaults00
注:CentOS6.X 的/ ,/boot swap设备用的是UUID。
UUID=b735fb57-4fc6-49b7-8fe7-19942c7415ea / ext4 defaults 1 1
UUID=64e6944c-7d54-4b47-9204-db65df339281 /boot ext4 defaults 1 2
UUID=b0357f1c-15c6-47f4-9859-5a910eaabae6 swap swap defaults 0 0
3.fstab文件字段详解
第一个字段。这里用来指定你要挂载的文件系统的设备名称或块信息,也可以是远程的文件系统。做过嵌入式linux开发的朋友都可能知道 mount 192.168.1.56:/home/nfs /mnt/nfs/ -o nolock (可以是其他IP)命令所代表的意义。它的任务是把IP为192.168.1.56的远程主机上的/home/nfs/目录挂载到本机的/mnt/nfs /目录之下。如果要把它写进/etc/fstab文件中,file system这部分应填写为:/192.168.1.56:/home/nfs/。如果想把本机上的某个设备(device)挂载上来,写法如:/dev/sda1、/dev/hda2或/dev/cdrom,其中,/dev/sda1 表示第一个串口硬盘的第一个分区,也可以是第一个SCSI硬盘的第一个分区,/dev/hda1表示第一个IDE硬盘的第一个分区,/dev/cdrom 表示光驱。此外,还可以label(卷标)或UUID(Universally Unique Identifier全局唯一标识符)来表示。用label表示之前,先要e2label创建卷标,如:e2label /dir_1 /dir_2,其意思是说用/dir_2来表示/dir_1的名称。然后,再在/etc/fstab下按如下形式添加:LABEL=/dir_2 /dir_2 。重启后,系统就会将/dir_1挂载到/dir_2目录上。对于UUID,可以用vol_id -u /dev/sdax来获取。CentOS 用blkid -s UUID命令。比如我想挂载第一块硬盘的第十一个分区,先用命令vol_id -u /dev/sda11 来取得UUID,比如是:5dc08a62-3472-471b-9ef5-0a91e5e2c126,然后在这个域上填写: UUID=5dc08a62-3472-471b-9ef5-0a91e5e2c126,即可表示/dev/sda11。Red Hat linux 一般会使用label,而Ubuntu linux 一般会用UUID。第二个字段。挂载点,也就是自己找一个或创建一个dir(目录),然后把文件系统挂到这个目录上,然后就可以从这个目录中访问要挂载文件系统。对于swap分区,这个域应该填写:none,表示没有挂载点。第三个字段。这里用来指定文件系统的类型。下面的文件系统都是目前Linux所能支持的:adfs、befs、cifs、ext3、 ext2、ext、iso9660、kafs、minix、msdos、vfat、umsdos、proc、reiserfs、swap、 squashfs、nfs、hpfs、ncpfs、ntfs、affs、ufs。可以查看/proc/filesystems。第四个字段。这里用来填写设置选项,各个选项用逗号隔开。由于选项非常多,而这里篇幅有限,所以不再作详细介绍,如需了解,请用 命令 man mount 来查看。但在这里有个非常重要的关键字需要了解一下:defaults,它代表包含了选项rw,suid,dev,exec,auto,nouser和 async。
对于大多数系统使用”defaults”就可以满足需要。其他常见的选项包括:选项 含义ro 以只读模式加载该文件系统sync 不对该设备的写操作进行缓冲处理,这可以防止在非正常关机时情况下破坏文件系统,但是却降低了计算机速度user 允许普通用户加载该文件系统quota 强制在该文件系统上进行磁盘定额限制noauto 不再使用mount -a命令(例如系统启动时)加载该文件系统第五个字段。此处为1的话,表示要将整个里的内容备份;为0的话,表示不备份。现在很少用到dump这个工具,在这里一般选0。第六个字段。这里用来指定如何使用fsck来检查硬盘。如果这里填0,则不检查;挂载点为 / 的(即根分区),必须在这里填写1,其他的都不能填写1。如果有分区填写大于1的话,则在检查完根分区后,接着按填写的数字从小到大依次检查下去。同数字 的同时检查。比如第一和第二个分区填写2,第三和第四个分区填写3,则系统在检查完根分区后,接着同时检查第一和第二个分区,然后再同时检查第三和第四个分区。
注:对于本地文件系统一般放在fstab里做挂载,并且结尾的两列必须是0 0,不然可能会导致系统无法正常启动。
4.fstab文件如何修复
网上修复fstab的方法有两种:
1。进入Linux单用户模式
①centos怎么让进入GRUB菜单界面?Linux开机引导的时候,按键盘上的e就可以进入进入GRUB菜单界面。②在出现GRUB引导画面时(CentOS(2.6.18-274**)),按字母e键,进入GRUB编辑状态。③把光标移动到kernel …那一行,再敲入“e”进入命令行编辑,在kernel一行的最后加上空格single,回车敲入“b”,启动系统,即进入单用户模式,
执行 root# mount -o remount,rw /
然后/etc/fstab就可以修改了
2。用光盘进入Linux修复模式(光盘启动按F2接着输入linux rescue回车进入)
系统在rescue mode下,会将找到的linux系统(包括根目录、/boot、/home等)挂载在/mnt/sysp_w_picpath下把fstab文件改正确就行了
灾难重现:
非常奇特,我CentOS6.4系统无论怎么玩fstab文件,系统都能正常起来。但似乎是单用户模式,文件系统是只读的。
[root@angelT ~]# mount
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
nfsd on /proc/fs/nfsd type nfsd (rw)
我把fstab改名了,重启机器虽然能起来,但。。
新问题出现了,虽然可以进入系统,但是是只读状态,mount也无法挂载根目录。。。
任何操作都是无效。。
方法一:使用单用户模式
单用户下执行mount -o remount,rw /不行。因为这个方法是要加载fstab文件的,而我那个文件被我改名了,所有这个系统中根本不存在这个文件。。
可见第一种使用单用户模式的方法是行不通的。
方法二:使用救援模式
①将boot修改成光盘启动,直接按esc键到boot:界面输入linux rescue 回车进入救援模式。
注:centos 6内存至少要1G,如果是虚拟机选择rescue也要将内存加至1G以上
②选择语言为默认english即可
③选择默认键盘为us
④默认即可(什么类型的媒体包含救援镜像)本地DVD
⑤网络设置选择no
按照以下的图操作即可,我怀疑是因为我两块磁盘的原因,有些差异,具体我再做实验。
进入rescue模式后,创建一个test目录,将/目录的设备挂载,我这系统默认为/sda3,将文件修改回来后,重启。注意修改下boot启动项哦!
OK,复活啦!!这是我的宝贝机器哦,死了可得惨了。。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/234631.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...