Arch
fstab
文件/etc/fstab
包含了静态文件系统信息,定义了存储设备和分区整合到整个系统的方式。mount
命令会读取这个文件,确定设备和分区的挂载选项。
[root@pArch ~]# cat /etc/fstab
#
# /etc/fstab: static file system information
#
# <file system> <dir> <type> <options> <dump> <pass>
# /dev/sda1
UUID=1eb59cbf-bbd5-467e-adb0-77a4e149d2f4 / ext4 rw,relatime,data=ordered 0 1
# /dev/sda2
UUID=947926e6-7063-4a20-b188-91315789f867 none swap defaults 0 0
/dev/sda2 /home ext4 nodev,nosuid 0 2
在<file system>
使用LABEL=
,或UUID=
,或名称/dev/sda2
。
- <file systems>
- 要挂载的分区或存储设备。如/dev/sda2
- <dir> - <file systems>
的挂载位置。如/home
- <type>
- 要挂载设备或是分区的文件系统类型。设置成auto类型,mount 命令会猜测使用的文件系统类型,对 CDROM 和 DVD 等移动设备是非常有用的。
- <options>
- 挂载时使用的参数。
文件系统标识
在 /etc/fstab
配置文件中你可以以三种不同的方法表示文件系统:内核名称
、UUID
或者 label
。使用 UUID 或是 label 的好处在于它们与磁盘顺序无关。如果你在 BIOS 中改变了你的存储设备顺序,或是重新拔插了存储设备,或是因为一些 BIOS 可能会随机地改变存储设备的顺序,那么用 UUID 或是 label 来表示将更有效。
要显示分区的基本信息请运行:
[root@pArch ~]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
fd0
sda
├─sda1 ext4 1eb59cbf-bbd5-467e-adb0-77a4e149d2f4 /
└─sda2 ext4 7a6126d0-585a-4c4a-aeb9-3bbd7dc107ac /home
sr0(名称) iso9660(文件系统类型) ARCH_201508(label) 2015-08-01-07-07-00-00(UUID) /run/media/lgl(挂载点)
或者是:
[root@pArch ~]# blkid /dev/sda2
/dev/sda2: UUID="7a6126d0-585a-4c4a-aeb9-3bbd7dc107ac" TYPE="ext4" PARTUUID="33ee702e-02"
UUID
所有分区和设备都有唯一的 UUID。它们由文件系统生成工具 (mkfs.*) 在创建文件系统时生成。【这就意味着,同一块儿设备,在被重新格式化文件系统之后,UUID就变了。】
A start job is running for dev-disk-by\x2dlabel-swapspace.device
I think the only problem is the change of UUID of your disks/swapfile.
My situation is: I use genfstab -U -p /mnt >> /mnt/etc/fstab
to generate a raw fstab file. My /dev/sda2 was used as swap at that time. Then after installing the OS, I delete and reformat my /dev/sda2, and put my /home directory on it.(Don’t ask me why, just for fun. Knowledge comes from ZheTeng. =.= )I add new info about my /home to the fstab file. Then the problem occurs.
The key point is that after reformatting my /dev/sda2 disk, its UUID changed. However, the fstab file still use its former UUID, which caused the problem.
Way to do: use lsblk -f
to view the new UUID and modify them to be correct ones in the fstab file.
Bingo!O(∩_∩)O~~
systemd
为了减少系统启动时间,systemd 的目标是:
- 尽可能启动更少的进程
- 尽可能将更多进程并行启动
关于启动时间
SysVinit
:每一个启动项目都由一个独立的脚本负责,它们由 sysVinit 顺序地,串行地调用。UpStart
:能够并发地运行任务不相互依赖的任务,增加了系统启动的并行性。但是在 UpStart 中,有依赖关系的服务还是必须先后启动。比如存在依赖关系的任务,所以在这个局部,还是串行执行。Systemd
:能够更进一步提高并发性,即便对于那些 UpStart 认为存在相互依赖而必须串行的服务,也可以并发启动。所有的任务都同时并发执行,总的启动时间被进一步降低1。
原理:Systemd 的开发人员仔细研究了服务之间相互依赖的本质问题,发现所谓依赖可以分为三个具体的类型,而每一个类型实际上都可以通过相应的技术解除依赖关系。
可见 systemd 比 UpStart 更进一步提高了并行启动能力,极大地加速了系统启动时间。
在不才作者看来,作为系统初始化系统,systemd 的最大特点有两个:
- 令人惊奇的激进的并发启动能力,极大地提高了系统启动速度;
- 用 CGroup 统计跟踪子进程,干净可靠。
systemctl
- 启动级别配置
默认进入文字界面:
systemctl set-default multi-user.target
图形界面:
systemctl set-default graphical.target
- 开机启动服务
systemctl enable ***.service
:如开机开启gdm服务systemctl enable gdm.service
- 停止开机启动服务
systemctl disable ***.service
- 启动/停止/重启服务
systemctl start/stop/restart ***.service
- 查询服务状态
systemctl status ***.service