第八章、引导过程与服务控制

目录

一、Linux操作系统引导过程

linux系统运行级别:

二、排除启动类故障

三、服务控制及切换运行级别

四、优化启动过程


一、Linux操作系统引导过程

        开机自检:                检查硬件设备,检测出第一个能够引导的系统设备,一般通过硬盘

        MBR引导:               运行放在mbr扇区里的启动GRUB引导程序

        GRUB菜单:             GRUB引导程序通过读取GRUB配置文件/boot/grub2/grub.cfg,来获取内核和镜像文件系统的设置和路径位置,并屏幕显示grub菜单

        加载内核:                 把内核和镜像文件系统加载到内存中,把系统控制权交接给内核

        init进程初始化:         加载硬件驱动程序 内核把init进程加载到内存中运行,并把init进程作为系统的第一个进程       sbin/init  init进程ID为1 它是系统进程的父进程

        系统初始化:              启动内核模块,执行运行级别的启动脚本,执行/etc/re.d/rc.local文件里的命令

centos7开始默认的启动方式为systemd,开机服务程序为并行启动,启动效率块

centos6及以前版本的启动方式是sysVinit,开机服务程序是通过串行启动/etc/init.d/目录下的shell脚本实现的,容易堵塞 启动效率慢

linux系统运行级别:
运行级别说明
0关机
1单用户模式
2字符界面的多用户模式(无网络)
3字符界面的多用户模式(完整的,有网络)
4字符界面的多用户模式(保留)
5图形界面的多用户模式
6重启

  


二、排除启动类故障

1、MBR扇区被破坏恢复

模拟MBR扇区被破坏恢复

1、先创建一个备份目录mkdir mbr-bak  然后添加一块硬盘 fdisk /dev/硬盘 分区  格式化mkfs -t  xfs /dev/sdb1 然后挂载 mount /dev/sdb1 /opt/mbr-bak

2、开始备份  备份命令:dd if=/dev/sda of=/opt/mbr-bak/mbr.bak bs=512 count=1 (dd是复制  if是指定从哪里复制数据  of指定复制到哪里   bs是指定获取的数据   count是重复多少次)

3、破坏mbr扇区:dd if=/dev/zero of=/opt/sda bs=512 count=1 意思是复制空数据到sda磁盘

4、重启发现不能启动了

5、从光盘启动 有个急救模式 进去 选择第二个 然后按1  进入到命令行模式

6、创建一个目录  把数据恢复到这里

7、然后把之前备份的/dev/sdb1挂载到这个目录下  然后 cd进去 就会看到备份的数据

8、恢复数据: dd if=/mbr-bak/mbr.bak of=/dev/sda 回车  然后就将备份的mbr导入到磁盘里 

root密码忘记

1、进入急救模式  然后按1继续 进入到命令界面

2、chroot  / mnt/ sysimage   切换根环境目录

3、passwd root  修改密码

4、然后重启

三、服务控制及切换运行级别

命令:systemctl  控制类型 .server  可加可不加 .server

查看运行级别 :runlevel 

systemctl  工具:查看当前默认级别

init  级别  : 切换当前级别

四、优化启动过程

服务开机自启动:systemctl enable 或 disable  --now  立即开启或关闭服务

systemctl enabled  服务名  查看开机自启是否打开

ntsysv 图形化界面开启自动启动

  • 15
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
TensorFlow提供了保存和载入训练过程中的模型参数和状态的功能。这样就可以在训练过程中定期保存模型,以便在需要时加载模型并继续训练或使用该模型进行预测。 ## 保存和载入整个模型 要保存和载入整个模型,可以使用`tf.keras.models.save_model`和`tf.keras.models.load_model`函数。这两个函数将整个模型保存到一个HDF5文件中,并可以直接载入整个模型。 ```python # 定义模型 model = tf.keras.Sequential([ tf.keras.layers.Dense(64, activation='relu', input_shape=(32,)), tf.keras.layers.Dense(10, activation='softmax') ]) # 编译模型 model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy']) # 训练模型 model.fit(x_train, y_train, epochs=10) # 保存模型 tf.keras.models.save_model(model, 'my_model.h5') # 加载模型 model = tf.keras.models.load_model('my_model.h5') ``` ## 保存和载入模型参数 如果只想保存和载入模型参数,可以使用`tf.keras.models.save_weights`和`tf.keras.models.load_weights`函数。这两个函数将模型参数保存到一个HDF5文件中,并可以直接载入模型参数。 ```python # 定义模型 model = tf.keras.Sequential([ tf.keras.layers.Dense(64, activation='relu', input_shape=(32,)), tf.keras.layers.Dense(10, activation='softmax') ]) # 编译模型 model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy']) # 训练模型 model.fit(x_train, y_train, epochs=10) # 保存模型参数 model.save_weights('my_weights.h5') # 加载模型参数 model.load_weights('my_weights.h5') ``` ## 保存和载入训练过程 如果想保存和载入训练过程中的损失和指标,可以使用`tf.keras.callbacks.ModelCheckpoint`回调函数。该回调函数在每个epoch结束时保存模型参数和训练过程信息,并可以在需要时载入训练过程信息。 ```python # 定义回调函数 checkpoint_callback = tf.keras.callbacks.ModelCheckpoint( 'my_model_{epoch}.h5', save_weights_only=True, save_best_only=False, verbose=1 ) # 定义模型 model = tf.keras.Sequential([ tf.keras.layers.Dense(64, activation='relu', input_shape=(32,)), tf.keras.layers.Dense(10, activation='softmax') ]) # 编译模型 model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy']) # 训练模型 model.fit(x_train, y_train, epochs=10, callbacks=[checkpoint_callback]) # 加载训练过程信息 history = {} for epoch in range(1, 11): model.load_weights('my_model_{}.h5'.format(epoch)) history[epoch] = model.history.history ``` ## 总结 TensorFlow提供了保存和载入训练过程中的模型参数和状态的功能,包括保存和载入整个模型、保存和载入模型参数以及保存和载入训练过程。这些功能可以帮助我们更好地管理和利用训练过程中的模型信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值