- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
负责的项目下有一批 ubuntu 18.04 的服务器在 AWS 上,因为安全的问题,需要把内核从 5.3.0 升级到 5.4.0。
首次升级为测试环境测两台都是ubuntu 18.04 的版本 内核也都为5.3.0。第一台升级进展很顺利。软件更新,然后内核进行单独升级。等到需要重启的时候出现了问题。
无法挂载磁盘
首先遇到的第一个问题
解决思路:
升级内核导致 boot 空间越来越小,然后导致无法引导进入系统。因为之前遇到过boot空间占满的情况。但是那是在 kvm 的 vm 中,可以通过 VNC 进行链接修复。这在 aws 上怎么办?
解决方法:
一开始我选择了将改服务器的根磁盘取消挂载。然后挂载到同一可用区的其他服务器上,进行修复。因为磁盘格式的问题,始终挂载不上,为了避免浪费时间,只能以快照恢复的方式将根磁盘进行扩容。
以快照的方式恢复了回复,在快照恢复的过程中将根磁盘扩容的方法果然将服务器运行起来了。
后面就接着尝试进行内核升级....
内核升级数据库依赖报错?
具体内容如下:
解决思路:
这个问题,真的是没有思路。处理了很久,都没有解决这个问题。还希望有思路的能到指导下。
解决方法:
为了快速解决内核升级的问题,我将 mysql 以及相关的依赖都卸载掉了。
升级完重启失败?
这个问题也是最大的问题,最明显的表现就是。升级没有报错,但是升级完需要重启,服务器进行重启的时候无法进入操作系统。
此时已经是凌晨4点多钟了,已经很迷糊了。然后就把服务器恢复到升级内核前的样子。打算明天启动快照进行复现。
解决思路:
又是挂载失败?怎么又会遇到挂载失败呢?最后发现重启自动挂载磁盘的配置并没有按照官方的指示去做使用UUID的配置开启挂载盘符。从而系统会检测磁盘的过程中会检测到该错误。无法正常进如系统。
解决方法:
如果是物理机,或者是可以通过其他方式进行控制引导的话还可以修复。但是云主机怎么修复呢?只能去修复磁盘了
在云主机上有两种访问磁盘卷的方法
方法 1:使用 EC2 控制台
(摘自 AWS 文档)
如果您为 Linux 启用了 EC2 串行控制台,则可以使用它来排查受支持的基于 Nitro 的实例类型问题。串行控制台可帮助您排查启动问题、网络配置和 SSH 配置问题。串行控制台无需网络连接即可连接到您的实例。您可以使用 Amazon EC2 控制台或 AWS 命令行界面 (AWS CLI) 访问串行控制台。
在使用串行控制台之前,请在账户层面授予对串行控制台的访问权限。然后,创建 AWS Identity and Access Management (IAM) 策略,授予对 IAM 用户的访问权限。此外,每个使用串行控制台的实例都必须至少包含一个基于密码的用户。如果您的实例无法访问,并且尚未配置对串行控制台的访问权限,请按照方法 2 中的说明进行操作。有关为 Linux 配置 EC2 串行控制台的信息,请参阅配置对 EC2 串行控制台的访问权限。
注意:如果在运行 AWS CLI 命令时遇到错误,请确保您使用的是最新版本的 AWS CLI。
方法 2:挂载到其他实例上
创建一个临时救援实例,然后将您的 Amazon Elastic Block Store (Amazon EBS) 卷重新挂载到该救援实例上。从该救援实例中,您可以将 GRUB 配置为使用以前的内核进行启动。
**重要提示:**请勿在实例存储支持的实例上执行此操作。由于此恢复方法需要首先停止然后再重启实例,该实例上的任何数据都将丢失。有关更多信息,请参阅确定实例的根设备类型。
lsblk
# 输出如下:
xvda 202:0 0 20G 0 disk
└─xvda1 202:1 0 20G 0 part /
xvdb 202:16 0 100G 0 disk
xvdf 202:80 0 15G 0 disk
└─xvdf1 202:81 0 15G 0 part # 该磁盘为故障集服务器根磁盘
查看磁盘格式
lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
xvda
└─xvda1 ext4 cloudimg-rootfs d32458a7-7f4c-415f-9a66-b579f14fb82d /
xvdb ext4 eb0e325a-471c-4a99-a9be-a3ee296c2405
xvdf
└─xvdf1 ext4 cloudimg-rootfs d32458a7-7f4c-415f-9a66-b579f14fb82d
挂载磁盘
sudo -i
mount /dev/xvdf1 /mnt
然后查看挂载目录,发现根磁盘已经挂载到了mnt下
查看配置文件
ubuntu@ip-10-0-20-27:~$ cat /etc/fstab
LABEL=cloudimg-rootfs / ext4 defaults,discard 0 0
/dev/nvme0n1 /data ext4 defaults 0 0
查看官网挂载文档如下:
(摘自AWS 官方文档)
要在每次系统重启时附加附加的 EBS 卷,可在 /etc/fstab
文件中为该设备添加一个条目。
您可以在 /dev/xvdf
中使用设备名称(如 /etc/fstab
),但建议改为使用设备的 128 位通用唯一标识符 (UUID)。设备名称可以更改,但 UUID 会在整个分区的使用寿命期间保留。通过使用 UUID,您可以减少系统在硬件重新配置后无法启动的机会。有关更多信息,请参阅识别 EBS 设备。
重启后自动附加附加卷
/etc/fstab
文件的备份,以便在编辑时误损坏或删除此文件时使用。[ec2-user ~]$ sudo cp /etc/fstab /etc/fstab.orig
例如,以下命令显示有两个设备挂载到实例上,并显示了两个设备的 UUID。
[ec2-user ~]$ sudo blkid
/dev/xvda1: LABEL="/" UUID="ca774df7-756d-4261-a3f1-76038323e572" TYPE="xfs" PARTLABEL="Linux" PARTUUID="02dcd367-e87c-4f2e-9a72-a3cf8f299c10"
/dev/xvdf: UUID="aebf131c-6957-451e-8d34-ec978d9581ae" TYPE="xfs"
对于 Ubuntu 18.04,请使用 lsblk 命令。
[ec2-user ~]$ sudo lsblk -o +UUID
/etc/fstab
和 nano)打开 vim 文件。[ec2-user ~]$ sudo vim /etc/fstab
/etc/fstab
以在指定的挂载点挂载设备。这些字段是 blkid(或用于 Ubuntu 18.04 的 lsblk)返回的 UUID 值、挂载点、文件系统以及建议的文件系统挂载选项。有关必填字段的更多信息,请运行 man fstab
以打开 fstab 手册。在以下示例中,我们将 UUID 为 aebf131c-6957-451e-8d34-ec978d9581ae
的设备挂载到挂载点 /data
,然后我们使用 xfs
文件系统。我们还使用 defaults
和 nofail
标志。我们指定 0
以防止文件系统被转储,并且我们指定 2
以指示它是非根设备。
UUID=aebf131c-6957-451e-8d34-ec978d9581ae /data xfs defaults,nofail 0 2
注意
如果您要在未附加此卷的情况下启动实例(例如,将卷移动到另一个实例之后),nofail
附加选项允许该实例即使在卷附加过程中出现错误时也可启动。Debian 衍生物 (包括早于 16.04 的 Ubuntu 版本) 还必须添加 nobootwait
挂载选项。
/etc/fstab
中运行以下命令以卸载设备,然后挂载所有文件系统。如果未产生错误,则说明 /etc/fstab
文件正常,您的文件系统会在重启后自动挂载。[ec2-user ~]$ sudo umount /data
[ec2-user ~]$ sudo mount -a
如果收到错误消息,请解决文件中的错误。
警告
/etc/fstab
文件中的错误可能显示系统无法启动。请勿关闭 /etc/fstab
文件中有错误的系统。
如果您无法确定如何更正 /etc/fstab
中的错误并且您在此过程的第一步中创建了一个备份文件,则可以使用以下命令从您的备份文件还原。
[ec2-user ~]$ sudo mv /etc/fstab.orig /etc/fstab
查看修改日期核对修改时间
问题都解决了。接下来继续升级内核吧。
sudo apt-get install linux-image-5.4.0-1055-aws
等待重启查看
终于成功了。。。
were encountered while processing
我正在尝试使用以下命令在远程 Ubuntu 服务器的后台运行进程: sshpass -p PASSWORD ssh root@HOST 'nohup COMMAND-THAT-BLOCKS &' 不幸
普通 Ubuntu 和 ARM Ubuntu 有什么区别。我可以运行所有应用程序吗也在 ARM Ubuntu 中的普通 Ubuntu 下运行? Ubuntu 更新会自动发生吗? Torrent 下载器
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题? Update the question所以它是on-topic对于堆栈溢出。 9年前关闭。 Improve this que
我正在尝试预置 Xenial 图像,它工作得很好,除了分区。 cloud-init 只能增长根分区,并且在使用扩展分区内的根文件系统构建镜像时不起作用: NAME MAJ:MIN RM SIZ
我对 Ubuntu 和 OpenFoam 真的很陌生,所以尝试学习并做一些教程。我正在使用 Docker 在 Ubuntu 上使用 OpenFoam。 我将文件夹复制到特定目录,但是当我尝试使用终端访
我在使用系统启动设置运行软件时遇到问题。我有 ubuntu 20.04。我试图将这些行插入到 etc/rc.local #!/bin/bash /usr/bin/clamonacc 它不起作用。第二次
TARGETS = client server CL_OBJ = clientMain.o Controller.o UI.o List.o Movie.o Server.o Serializer.o
我有一个 ubuntu服务器系统是8.04 hardy ,我在哪里安装rabbitmq。 rabbitmq依赖于 erlang-nox (>= 1:12.b.3) ,但是在当前的 ubuntu 版本中
我有一个用于开发的 Ubuntu virtualbox 设置。当我在文件中处于 org-mode 时,org-mode 的任何热键都不起作用(例如 M-RETURN 用于创建新标题)。我该怎么做才能让
我的 SchemaCrawler(版本 15.01.03)模式图在 Ubuntu 18.04 LTS 上截断表名。看起来表格通常被画得太窄,因为“[TABLE]”符号也开箱即用。在我的 Mac 上渲染
在 Ubuntu 中,设置应用程序中有几个地方有一个非常漂亮的 ListView ,带有添加/删除按钮,包括外观、键盘布局、隐私、蓝牙等。他们使用什么小部件?我开始使用 Glade 开发我的第一个 U
需要帮助卸载 jjrofiler。没有意识到它需要许可证。通过 .sh 可执行文件安装。 最佳答案 如果您转到 jProfiler 安装目录,您将找到名为 uninstall 的可执行文件,只需从终端
我一直在寻找几天,我没有想出解决方案。我是 ruby 新手,但我想通过使用 spree 开发自己的在线商店。 我使用:rails:Rails 3.2.13 ruby :ruby-1.9.3-p42
我尝试使用以下命令从/usr/local/bin 中删除我的 python2.7 和 python3 文件夹:sudo rm -rf python2.7 和 sudo rm -rf python3。后
在 ubuntu 服务器中(使用 ssh 协议(protocol)), 如何更改因不活动而断开连接的时间? 最佳答案 你能在 .bash_profile 中加入“exec screen -R”,在 .
我使用以下配置在 /etc/apache2/site-available/mysite.local 中创建了一个虚拟主机: ServerAdmin webmaster@localhost
我为大约 210 个用户新设置了一个代理服务器。它运行 ubuntu server 2012 和 squid3。问题是在凌晨 1:30 之后,如果用户尝试打开 google.com、youtube.c
gitlab-ci-multi-runner 1.0.2 (ea19241) Using Shell executor... Running on ip-... Cloning repository.
我有一个备份服务器,它每小时接收许多 rsync 连接。由于打开太多 rsync 实例可能会导致崩溃,我想使用 Semaphore 来限制并发实例的数量。 .我的想法是这样的: ssh root@ba
我有同一个库的多个版本,我的程序动态链接到这些库。有时我想更改使用的版本。 我一直在阅读,出于安全原因,新版本的 Ubuntu 不再支持 LD_LIBRARY_PATH。我可以将路径添加到 /etc/
我是一名优秀的程序员,十分优秀!