一、Linux 基础之挂载
1. 挂载和查询
1.1 挂载
什么叫挂载?装系统的时候要给硬盘分区,在 Windows 中要分 C 盘 D 盘 DEF 盘,这个操作我们叫做分配盘符,分配盘符之后我们就可以根据盘符去访问具体的硬盘分区了。而在 Linux 中我们把分配盘符的过程称为 挂载
。在 Linux 系统中,任何一个硬件设备(如光盘,U盘)要接入系统,则必须先挂载,再通过挂载点去访问(或调用)设备中的内容。
1.2 设备文件名
1.3 挂载点
如上图所示:
在根目录下,系统为我们准备了 3 个挂载点,其中 media 用于挂光盘,misc 用于挂磁带机等较少见的存储设备,mnt 用于挂U盘和移动硬盘等。实际上我们可以忽略前两者,在使用时将所有存储设备都挂载到 /mnt/ 目录下即可,也懒得记这么多了。
1.4 查询
mount 命令:查询系统中已经挂载的设备
命令示例: mount
[root@localhost ~]# mount
/dev/mapper/vg_myydsrw-lv_root on / type ext4 (rw)
proc on /proc type proc (rw) // /proc 和 /sys 目录是内存的挂载点,自动挂载的
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
其中,第七行:
/dev/sda1 on /boot type ext4(rw)
/dev/ 目录是保存硬件设备的目录,sd 代表 SATA 或者 SCSI 接口的硬盘,a 指第 1 块硬盘,1 指第 1 个分区(1-4主分区,5以上是逻辑分区)。
这一行代表 第 1 块 SATA 硬盘的第 1 个分区是 /boot 分区,文件类型是 etx4
我们通过访问 /boot 目录就可以访问到硬盘的数据了
1.5 自动挂载
mount -a 命令:依据 /etc/fstab 的内容进行自动挂载
/etc/fstab 文件会在系统启动的时候自动执行,我们先看一下 /etc/fstab 文件的内容
/dev/mapper/vg_myydsrw-lv_root / ext4 defaults 1 1
UUID=47fa30fe-a6c7-414c-b28b-77da3fde58a9 /boot ext4 defaults 1 2
/dev/mapper/vg_myydsrw-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
这就不难理解为什么一开机就有这么多已经挂在好了的目录了
2. 命令详解
2.1 命令格式
mount [-t 文件系统] [-o 特殊选项] 设备文件名 挂载点
其中:
-t 文件系统:在 Windows 中默认支持 NTFS;在 Linux 中默认支持 EXT3 和 EXT4 (CentOS6 以上的系统中默认是 EXT4)
-o 特殊选项:额外指定挂载时的其他选项(如下图1所示)
设备文件名:在 Linux基础(一) 中有参考表格
挂载点:实际上就是一个空白目录,可通过挂载点访问其挂载的文件系统(磁盘内容)
2.2 命令示例
2.2.1 挂载/卸载光盘
第一步:插入光盘
虚拟机:如上图所示
真机中:将光盘插入光驱
第二步:建立挂载点
[root@localhost ~]# mkdir /mnt/cdrom
其中:
挂载点在本文第二张图有解释
第三步:挂载光盘
[root@localhost ~]# mount -t iso9660 /dev/sr0 /mnt/cdrom/
其中:
-t 指定文件系统为 iso9660 (可省略不写)
/dev/sr0 为光盘的设备文件名,实际上也可以用 /dev/cdrom 代替,因为后者是前者的软链接
/mnt/cdrom 为第二步建立的挂载点,实际上就是一个空白目录(任何一个空目录都可以作为挂载点)
注意:这条命令会有如下报错
mount: block device /dev/sr0 is write-protected, mounting read-only
这是因为 mount 命令的默认挂载权限是读写,而光盘一旦刻录好了之后就不能在写入数据了。出现这个提示反而可以认为光盘被正确挂载
第四步:查看光盘内容
当光盘被正确挂载之后,就能通过挂载点去访问光盘中的数据了。
ls /mnt/cdrom/Packages/
第五步:卸载光盘
在 Linux 中,当光盘使用完毕后,必须卸载才可以取出光盘,若直接取出可能会导致一些错误发生。
卸载命令如下:
umount 设备文件名或挂载点
如:
umount /dev/sr0 或 umount /mnt/cdrom/
2.2.1 挂载/卸载 U盘和移动硬盘
背景知识:
因为U盘的命名和硬盘是一个路线,所以也是以sd
作为标记, 在插入U盘之前,可以使用fdisk -l
命令查看当前硬盘命名情况。若 Linux 已经识别了 2 块 SATA 硬盘,则已存在sda
和sdb
,那么插入的U盘就会被命名为sdc
。那么我们在挂载该U盘时就要用mount -vfat /dev/sdc1 /mnt/usb/
命令。
现象:
有时候插入了U盘,但是 Linux 却没有识别出sdc
,那么原因就是该U盘的文件系统是 NTFS(如上图所示),而 Linux 又默认不支持 NTFS 文件系统,所以插入U盘后没反应。
解决办法:1.修改 Linux 内核;2.下载 ntfs-3g.rpm 并安装即可。
但需要注意的是,这两种方法只能读取不能写入。
对于不支持 NTFS 的 Linux 来说,如果要使用 Windows 中的数据,一般用网络传输的方式。
第一步:插入U盘
虚拟机:点击右下角USB图标 -> 连接(断开与主机的连接)(C)
真机中:将U盘直接插入USB接口
第二步至第五步:
与光盘一致
二、Linux 基础之关机重启
1.关机
1.1 shutdown 命令
命令格式:shutdown [选项] 时间
选项:
-c:取消前一个关机命令(cancel)
-h:关机(halt)
-r:重启(reboot)
时间:
如 05:30
相对于其他关机命令(如init 0),shutdown 命令更安全,因为其他命令不会正确保存当前正在运行的服务。
1.2 其他关机命令
其他关机命令有:
halt
poweroff
init 0
2.重启
2.1 shutdown 命令
对于重启来说,就是 shutdown -r now
。
2.2 其他重启命令
reboot
init 6
三、Linux 基础之系统运行级别
1.系统运行级别
系统运行级别:
0 关机
1 单用户
2 不完全多用户(不含NFS服务)
3 完全多用户
4 未分配(系统预留)
5 图形界面
6 重启
可用 init
命令调用系统运行级别(更改当前系统运行级别)
1.1 查看系统运行级别
runlevel 命令:查看系统运行级别
显示前一个系统运行级别和当前系统运行级别,N 代表 Null
1.2 设置系统默认运行级别
我们知道,Linux 中有 7 个运行级别,那么是否能够设置系统启动时自动进入到某个运行级别?答案是可以的,在 Linux 6 系列中,系统启动后默认进入的运行级别保存在 /ect/inittab
文件中。
该文件内容如下:其中,最后一行指定了系统启动后默认的运行级别
[root@localhost ~]# cat /etc/inittab
# inittab is only used by upstart for the default runlevel.
#
# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# System initialization is started by /etc/init/rcS.conf
#
# Individual runlevels are started by /etc/init/rc.conf
#
# Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf
#
# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,
# with configuration in /etc/sysconfig/init.
#
# For information on how to write upstart event handlers, or how
# upstart works, see init(5), init(8), and initctl(8).
#
# Default runlevel. The runlevels used are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:3:initdefault:
注意:默认运行级别不能设置为 0 和 6