我一直在管理许多 Linux 服务器,Linux 服务器比任何其他操作系统都更容易玩。但有时我遇到 Linux 操作系统的一个问题是,文件系统损坏。此问题在 Windows 服务器中不会发生。
我在网上详细搜索了解决方案,大部分都是大家给的建议。
我的评论 ==> 100% 同意,但我正在寻找解决方案,我不需要为恢复崩溃的操作系统而苦苦挣扎。
我的评论 ==> 根据我的经验,有时会引入其他问题。
我的评论 ==> 每个人都想正确关机/重启。我说的是一种罕见的情况,即服务器没有响应或我无法正确关闭或重新启动
我的评论 ==> 对于生产来说不够稳定
我的评论 ==> 已经在使用 ext4
我的 fsck 问题:
当我们使用 -y 选项运行时,fsck 有时会损坏文件系统
fsck 大约需要 1 到 2 天的时间来修复系统,这对我在生产环境中是不合适的
我的问题是,在 btrfs 变得稳定之前,有没有办法解决这个问题?
比如,在几分钟内“同步”一次文件系统。或编写一些脚本以在重新启动之前同步所有文件系统更改
我正在寻找解决此问题的方法而不是建议。
在 Linux 发行版中,比如说 Ubuntu 14.04,如何找到编译/构建这个特定 Linux 内核的时间和日期?
默认情况下,centos 7 带有内核版本 3.10.x。安装centos 7后,我将内核升级到最新的稳定版本4.6.x。我的系统是远程的。首先,在每次内核更新/升级时重新启动对我来说非常昂贵。有什么解决办法吗?其次,如果我重新启动,仍然加载 3.10.x 版本。问题出在哪儿 ?
我使用以下命令进行升级
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
yum install http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
yum --enablerepo=elrepo-kernel install kernel-ml
reboot
Run Code Online (Sandbox Code Playgroud) 我目前正在阅读Robert Love 的Linux Kernel Development。
在“15 进程地址空间”一章中,他打印了进程的内存映射。
user@machine:~$ pmap 1424
#all the processes mapped memory (skipped for readability)
bfffe000 (8KB) rwxp (0:00 0) [ stack ]
Run Code Online (Sandbox Code Playgroud)
最后一行显示堆栈(随着它向下增长)。
他现在说:
堆栈自然是可读、可写和可执行的——否则没有多大用处。
据我所知,我们将堆栈用于数据和代码地址(函数及其参数/变量)。
我不明白为什么堆栈必须是可执行的?
你能帮我理解,为什么我的 SATA 热插拔不起作用?当我插入 sata 磁盘时,lsblk不会改变。只有我的系统盘/dev/sda。
我有Linux:
$ uname -a
Linux Z170-D3H 4.9.0-3-amd64 #1 SMP Debian 4.9.25-1 (2017-05-02) x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
内核设置:
$ cat /boot/config-4.9.0-3-amd64 | 热插拔
CONFIG_MEMORY_HOTPLUG=y
CONFIG_MEMORY_HOTPLUG_SPARSE=y
# CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE is not set
CONFIG_HOTPLUG_CPU=y
# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set
# CONFIG_DEBUG_HOTPLUG_CPU0 is not set
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
CONFIG_ACPI_HOTPLUG_CPU=y
CONFIG_ACPI_HOTPLUG_MEMORY=y
CONFIG_ACPI_HOTPLUG_IOAPIC=y
CONFIG_HOTPLUG_PCI_PCIE=y
CONFIG_HOTPLUG_PCI=y
CONFIG_HOTPLUG_PCI_ACPI=y
CONFIG_HOTPLUG_PCI_ACPI_IBM=m
CONFIG_HOTPLUG_PCI_CPCI=y
CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m
CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
CONFIG_HOTPLUG_PCI_SHPC=m
CONFIG_XEN_BALLOON_MEMORY_HOTPLUG=y
CONFIG_XEN_BALLOON_MEMORY_HOTPLUG_LIMIT=512
# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
Run Code Online (Sandbox Code Playgroud)
$ cat /boot/config-4.9.0-3-amd64 | SATA接口
CONFIG_SATA_ZPODD=y
CONFIG_SATA_PMP=y
CONFIG_SATA_AHCI=m
# CONFIG_SATA_AHCI_PLATFORM is not set
# …Run Code Online (Sandbox Code Playgroud) 我通读了 man proc 的文档。当谈到 overcommit_memory 时,overcommit_memory=0 中的启发式不太好理解。启发式实际上是什么意思?
“不检查使用 MAP_NORESERVE 调用 mmap(2)”是否意味着内核只分配虚拟内存而不知道交换空间的存在?
该文件包含内核虚拟内存记帐模式。值是:
0:启发式过量使用(这是默认设置)
1:总是过量使用,从不检查
2:始终检查,永远不要过度使用
模式0下,不检查mmap(2)和MAP_NORESERVE的调用,默认检查很弱,导致风险
获得一个进程“OOM 杀死”。
除了前面的问题,虚拟地址空间耗尽是否会导致 OOM,而不管剩余的物理内存是否足够。
谢谢。
我正在尝试在新的 Debian 9 安装上安装 Virtualbox Guest Additions,并在构建模块时出错。软件包build-essential,module-assistant,dpkg,linux-headers-4.0.3安装:
$ sudo apt install build-essential dpkg linux-headers-4.0.3-3
$ sudo apt build-dep -y linux
Run Code Online (Sandbox Code Playgroud)
要安装我运行的 Additions:
$ sudo mount -o remount,exec,ro /media/cdrom0
$ sudo /media/cdrom0/VBoxLinuxAddons.run
Run Code Online (Sandbox Code Playgroud)
并得到错误:
Verifying archive integrity... All good.
Uncompressing VirtualBox 5.1.6 Guest Additions for Linux...........
VirtualBox Guest Additions installer
Removing installed version 5.1.6 of VirtualBox Guest Additions...
Copying additional installer modules ...
Installing additional modules ...
vboxadd.sh: Building Guest Additions kernel modules.
Failed …Run Code Online (Sandbox Code Playgroud) 这个问题为什么系统会变得无响应?接近。答案有点解释了可能发生的事情,但我只是不明白为什么这个问题至少从 80 年代开始就没有得到解决。有什么理论上的原因吗?
具体发生的情况是系统运行良好而没有明显的性能下降,而我的浏览器中有许多选项卡(Firefox 和 Chrome 都会发生)但有时打开新选项卡(或启动其他浏览器)会导致硬盘驱动器不断发出噪音,鼠标/键盘输入响应滞后如此严重,以至于我宁愿冷重启。这为我节省了 10 分钟和大量的白发。
我完全禁用了交换,同样的情况也会发生。内核不应该杀死达到物理内存限制的第一个进程,或者最大的进程?
内核不应该允许任何进程,甚至是有缺陷/恶意的进程,更不用说 Firefox/Chrome,导致无响应的程度,以致最快的出路是冷重启。不管是什么原因。是什么原因?垃圾分类无法识别?不应该自动杀死一个过于“贪婪”的进程,而不是让用户通过重新启动并丢失未保存的数据来手动杀死所有进程?
我知道 SysRq 组合键和 pkill(> 10 分钟),但我不想使用它们中的任何一个。我希望这个问题能自动解决。
我感兴趣的是为什么这在 Linux 中没有解决?
据我了解,内核不是一个进程,而是一组可以从另一个进程的运行时调用的处理程序(或者内核本身通过计时器或类似的东西?)
如果程序遇到一些需要长时间同步处理才能再次开始运行的异常处理程序(例如,遇到需要读取磁盘的页面错误),内核如何识别应该切换上下文?为了实现这一点,似乎需要运行另一个进程?
内核是否会通过间歇性检查处于此状态的进程来生成处理此问题的进程?调用长时间运行的同步处理程序的进程是否让内核知道它应该切换上下文直到处理程序完成(例如磁盘读取完成)?
阅读斯蒂芬的一篇优秀回复,我想知道两者之间有什么区别
当操作系统关闭时。...
和
当内核关闭时,......(......我正在考虑使用外部命令关闭的变体不是内核)
?
“使用外部命令关闭的变体”是“操作系统关闭时”还是“内核关闭时”?
换句话说,“我正在考虑使用外部命令关闭的变体不是内核”是什么意思?
系统调用reboot()是否重启操作系统或内核?
命令会reboot重启操作系统而不是内核吗?
谢谢。
kernel ×10
linux ×4
debian ×2
linux-kernel ×2
memory ×2
process ×2
scheduling ×2
centos ×1
compiling ×1
filesystems ×1
hot-plug ×1
interactive ×1
interrupt ×1
partition ×1
sata ×1
shutdown ×1
stack ×1
swap ×1
virtualbox ×1