我有一台远程服务器,运行 Linux 5.19.0-41-generic x86_64,我试图找出它是如何启动的。
显然,它不使用 systemd :
PID 1 进程是bash。
ps -p 1 -o comm=
bash
Run Code Online (Sandbox Code Playgroud)
显然,没有 GRUB,至少 /usr/sbin 中没有,并且
grub-install --version
-bash: grub-install: command not found
Run Code Online (Sandbox Code Playgroud)
我猜想,启动时并没有使用GRUB。
看起来不是虚拟机。我检查了一些文件。它似乎在裸机上运行。但配置很小:顶部仅显示少数进程,并且在 ssh 上,如果我需要更完整的功能,系统会提示我“取消最小化”。
我倾向于认为使用了 SysV:
ls /etc/init.d
apport bluetooth hwclock.sh network-manager procps rsync udev
avahi-daemon dbus iwpmd nfs-common pulseaudio-enable-autospawn saned unattended-upgrades
binfmt-support gdm3 kmod pppd-dns rpcbind ssh x11-common
Run Code Online (Sandbox Code Playgroud)
但:
runlevel
unknown
Run Code Online (Sandbox Code Playgroud)
并且 /etc/inittab 不存在。
Q1:如何诊断是什么东西启动的?
Q2:如何重启?理想情况下,使用 systemd。
sudo reboot
System has not been booted with systemd as init system (PID 1). Can't …Run Code Online (Sandbox Code Playgroud) 使用 NAS 盒作为 24/7 文件服务器,我想使用 sshfs 从 Ubuntu 9.04 桌面连接到它。目前,我在桌面的 fstab 中有这一行:
sshfs#jldugger@storage:/mnt/HD_a2/ /mnt/storage fuse comment=sshfs,auto,users,exec,uid=1000,gid=1000,allow_other,reconnect,transform_symlinks,BatchMode=yes,fsname=sshfs#jldugger@storage/mnt/HD_a2/ 0 0
Run Code Online (Sandbox Code Playgroud)
我可以确认它适用于 mount /mnt/storage。我需要的是在启动时安装它的一些方法,但在建立网络连接之后。
如何确定要删除哪些内核以释放/boot分区上的一些空间。
这是一个场景(一些背景信息)。
# df -h
Filesystem Size Used Avail Use% Mounted on
...
/dev/sda1 99M 81M 14M 86% /boot
...
Run Code Online (Sandbox Code Playgroud)
# uname -a
Linux serv.example.com 2.6.32-358.23.2.el6.x86_64 #1 SMP Wed Oct 16 18:37:12 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
# rpm -qa | grep kernel
abrt-addon-kerneloops-2.0.8-21.el6.centos.x86_64
kernel-firmware-2.6.32-431.1.2.0.1.el6.noarch
libreport-plugin-kerneloops-2.0.9-19.el6.centos.x86_64
kernel-headers-2.6.32-431.1.2.0.1.el6.x86_64
kernel-2.6.32-358.11.1.el6.x86_64
kernel-2.6.32-358.el6.x86_64
kernel-2.6.32-358.23.2.el6.x86_64
dracut-kernel-004-336.el6_5.2.noarch
Run Code Online (Sandbox Code Playgroud)
根据微软的说法,这里是 Bootrec /FIXBOOT 的作用:
"This option writes a new boot sector to the system partition by using a boot sector that's compatible with Windows Vista or Windows 7"
Run Code Online (Sandbox Code Playgroud)
这就是 Bootrec /FIXMBR 所做的:
"This option writes a Windows 7 or Windows Vista-compatible MBR to the system partition"
Run Code Online (Sandbox Code Playgroud)
现在还不是MBR只是一种类型的引导扇区的?它可以修复哪些其他类型的引导扇区?当我使用一个而不是另一个时,我感到很困惑 - mbr 不是 Windows 唯一使用的引导扇区吗?
是否可以从 USB 闪存驱动器进行双启动?是否也可以从 ISO 映像(如 Ubuntu Live CD)启动操作系统?
您将如何进行此操作以及需要哪些软件?
我正在制作 Debian Jessie 的图像。启动时系统没有/etc/machine-id文件。这会导致无法启动的日志出现一些问题。
我在 systemd 仓库中发现:
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
[Unit]
Description=First Boot Wizard
Documentation=man:systemd-firstboot(1)
DefaultDependencies=no
Conflicts=shutdown.target
After=systemd-remount-fs.service
Before=systemd-sysusers.service sysinit.target shutdown.target
ConditionPathIsReadWrite=/etc
ConditionFirstBoot=yes
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=@rootbindir@/systemd-firstboot --prompt-locale …Run Code Online (Sandbox Code Playgroud) 我有一台有很多磁盘的机器,还有一个 HBA 模式下的额外 SAS 控制器。这似乎导致 Linux 在磁盘实际出现之前在 initramfs 中思考至少 8-10 秒。磁盘检测超时时间为 10 秒。这会导致 BTRFS/MDADM/etc 无法挂载我系统中的 RAID1,将我置于紧急 shell 中,从那里我可以实际挂载磁盘并继续正常工作。
我的问题是,如何从 10 秒增加启动时的超时时间?它在systemd中吗?是在udev吗?别的地方?我不确定从哪里开始寻找,谷歌搜索这个问题似乎主要是让人们希望提高 I/O 超时或其他一些(scsi/lun/etc)超时,但我不是在寻找那个。
好吧,如果有人想扮演上帝并创造奇迹,我很失望。
所以,我的任务是制作一个脚本,找到超过 6 个月的文件,压缩它们然后删除它们。在我制作 tihs 脚本的过程中,我运行了这个:
find / -type f -mtime -400 ! -mtime -180 | xargs gzip blablabla
Run Code Online (Sandbox Code Playgroud)
这给了每个文件一个 .gz 扩展名。现在我一注意到就取消了,但为时已晚。完成命令后,我的 bash 命令都不起作用,因为 $PATH 变量自行清空。在意识到问题出在哪里之前,我尝试了很多东西。
因此,在解压缩所有内容后,我仍然无法启动。在我按照在线说明进行了以下操作之后,我设法进行了 grub 救援:
root (hd0,0)
setup (hd0)
kernel (hd0,0)/boot/vml[...]
initrd (hd0,0)/boot/initrd.im[...]
Run Code Online (Sandbox Code Playgroud)
之后我的 linux 部分启动但给了我以下错误:
Begin : Running /scripts/init-bottom ... mount : mounting /dev on /root/dev failed : No such file or directory
mount: mounting /sys/ on /root/sys failed: No such file or directory
mount: mounting /proc on /root/proc failed : No such file or …Run Code Online (Sandbox Code Playgroud) Hyper-V 虚拟机能够进行 PXE 引导。显然,PXE 启动会引起一些安全问题。问题是,与典型的物理机固件不同,没有明显的方法可以完全禁用 PXE 引导。
Hyper-V 管理器在以下位置显示每个 VM 的网络适配器Settings=>Firmware=>Boot Order:

您可以将网络适配器移至引导顺序的底部,但不能将其从该屏幕中完全移除。因此,如果由于某种原因,Hyper-V 无法从任何其他驱动器启动,VM 仍会尝试 PXE 启动并显示以下屏幕:

我已经Settings=>Network Adapter寻找了一种禁用 PXE 启动的方法,但无济于事。
所以我的问题是:
我使用的是 Windows Server 2012 R2
我有一个 Windows 服务,它在大多数服务器上都运行良好。但是在一台服务器中,我看到它在网络服务启动之前启动。这会导致服务挂起,从而导致操作系统无法启动。它也会卡住。服务的通常启动顺序是什么?我的 Windows 服务确实建立了 TCP 连接。我应该添加延迟启动吗?如果是这种情况,是不是所有服务都应该在这些网络服务之后延迟启动?任何帮助将非常感激。