Questions tagged «linux»

这些问题通常与Linux有关-并非特定于特定发行版。如果问题恰好在Linux环境中,请在问题正文中指定Linux发行版,但不要使用/ linux标记。

3
Linux上详细的稀疏文件信息
我有一个稀疏文件,在其中仅分配了一些块: ~% du -h --apparent-size example 100K example ~% du -h example 52K example 我想知道实际上分配了文件的哪些块。是否有系统调用或内核接口可用于获取分配列表或文件漏洞列表? 仅检查足够长的零字符串(GNU cp,rsync等使用的方法)无法正常工作: ~% cp example example1 ~% du -h example1 32K example1 它检测到其他实际分配的零序列。

2
从Ubuntu引导过程中删除抽象
在将近5年之后,我一直在使用Linux,并且观察到启动过程几乎已经抽象了。我的意思是,用户看不到幕后发生的事情(由于启动屏幕等)。现在,这对于最终用户可能是好的,但对于极客却不是:) 我想带回过去的冗长。这是我所做的: 通过从命令行中删除“ splash”和“ quiet”参数,我已经能够摆脱其中的一些。但是,我仍然看不到服务是一一启动的(就像init.d中的一样)。 我认为这是因为init守护进程被upstart所取代。是否有一些配置文件,我可以对其进行调整以使发生的事情变得冗长。 另外,一旦出现登录屏幕,它就会擦除启动日志历史记录。有办法禁用它吗? 注意:我知道我可以通过将发行版切换到Arch或Slackware来做到这一点。但是我不想那样做。

1
如何配置cgroup在用户之间公平地共享资源?
cgroups下曾经有一个名为sched_user或类似名称的内核配置选项。据我所知,这允许所有用户公平地共享系统资源。在2.6.35中不可用。有没有一种方法可以配置系统以在所有用户(包括root用户)之间自动共享io / cpu /内存资源。我以前从未建立过cgroup,是否有一个很好的教程可以这样做?非常感谢你。

5
如果我从Ubuntu切换到openSuse,我应该期待什么?
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 也许你们中的大多数人一直在使用Ubuntu。我不是专家,但是直到使用Ubuntu之前,我一直在使用不同的发行版。 我开始使用SuSE 5.x,Conectiva(后来看来是Mandriva),RedHat,Mac OS X(是的,我知道,不是Linux)和Ubuntu在过去几年中主要作为VM运行。 但是自从SUSE发布SUSE Studio之后,我就一直试图切换回它。将安装保持在云中并下载系统随时可用的方法太方便了。 这是我的问题。期望从开关中得到什么。我知道SUSE使用RPM作为其软件包管理器,与Ubuntu相比,我不知道其存储库的完整性。 在VM上尝试openSUSE时,我也想念sudo命令,但是我确信这一定是我缺少一些配置。 那么,还有什么不同呢?我对Linux的主要用途是用作桌面以及一些Java和Ruby编程。

4
是什么让便携式mp3播放器在Linux上正常工作?
我正在市场上购买新的便携式mp3播放器,并将其主要连接到Linux机器,但偶尔也连接到Windows Vista机器。我想知道我应该在音乐播放器中寻找哪些品质,这些品质建议对Linux开箱即用提供良好的支持。为了使iPod能够始终如一地与Linux完美兼容,我一直很努力,我希望可以找到能够提供更好的本机Linux支持的产品。 到目前为止,我在搜索中注意到了几件事: Ogg Vorbis支持与“ Linux兼容”高度相关 Linux兼容通常具有“仅支持数据传输”之类的条件。 这些是我唯一可以遵循的线索吗?如果您对要寻找的东西有任何建议或可以做对的产品示例,我将不胜感激。

1
“高速缓存”存储器实际上是免费的吗?
运行时cat /proc/meminfo,您将在顶部获得以下三个值: MemTotal: 6291456 kB MemFree: 4038976 kB Cached: 1477948 kB 据我所知,“已缓存”值是Linux系统创建的磁盘缓存,如果任何应用程序需要更多RAM,它将立即释放,因此Linux永远不会用完内存,直到MemFree和“已缓存”都为零。 不幸的是,/ proc / meminfo没有报告“ MemAvailable”,可能是因为它在虚拟服务器中运行。(内核版本为4.4) 因此,出于所有实际目的,可用于应用程序的RAM是MemFree + Cached。 这种观点正确吗?
11 linux  memory  cache  meminfo 

2
为什么在创建子进程后立即调用exec()或exit()时使用vfork()?
操作系统概念和APUE说 通过vfork(),父进程被挂起,子进程使用父进程的地址空间。由于vfork()不使用写时复制,因此,如果子进程更改了父级地址空间的任何页面,则父级恢复后更改后的页面将对父级可见。因此,必须谨慎使用vfork(),以确保子进程不会修改父进程的地址空间。 vfork()旨在在子进程创建后立即调用exec()或exit()时使用。 我如何理解最后一句话? 当通过vfork()调用创建的子进程时exec(),是否exec()通过加载新程序来修改父进程的地址空间? 当通过vfork()调用创建子进程时,终止子进程时exit()是否 exit()不修改父进程的地址空间? 我偏爱Linux。 谢谢。
11 linux  process  exec  exit  vfork 


1
mdstat中位图的含义是什么
不久前,我mdadm用RAID6中的4个驱动器创建了新的软件RAID阵列()。似乎工作正常。mdstat如下: Personalities : [raid6] [raid5] [raid4] md0 : active raid6 sda1[0] sde1[3] sdd1[2] sdb1[1] 1953260544 blocks super 1.2 level 6, 512k chunk, algorithm 2 [4/4] [UUUU] bitmap: 0/8 pages [0KB], 65536KB chunk unused devices: <none> 困扰我的是那bitmap: 0/8 pages部分,我不理解。 问题是:这是否是潜在的问题?并且请详细说明一下位图的实际含义。 该数组的完整细节如下: /dev/md0: Version : 1.2 Creation Time : Tue Nov 1 …

1
使只读/ etc可写
我正在处理运行Linux的嵌入式设备。该设备的制造商对其进行了设置,以便将根文件系统加载为只读。 在/ etc / mtab中: rootfs / rootfs rw 0 0 /dev/root / squashfs ro,relatime 0 0 这意味着我无法修改/ etc中的任何文件,例如添加新用户。 我试过重新挂载根目录: mount -o remount,rw -t squashfs /dev/root / 但是我得到一个错误 mount: cannot remount block device /dev/root read-write, is write-protected 我查了这个错误,有人说要使用blockdev。该系统未安装blockdev,因此我对其进行了交叉编译并进行了复制。然后我跑了 blockdev --setrw rootfs 但是我又得到一个错误: blockdev: cannot open rootfs: No such file or …

1
Centos什么时候用dnf替换yum?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 3年前关闭。 在fedora中已经有Dnf,这是Rhel / centos的测试平台,但是为什么centos 7仍在使用yum?
11 linux  centos  dnf 

2
是否可以在两个Linux主机之间以10Gbps的速度通过USB 3.1 Type-C进行IP传输?
我一直无法自行决定是否可以这样做。我想知道是否有可能将两个具有USB 3.1和C型连接器的Linux系统连接起来,以标准要求的全速10Gbps设置点对点网络(IP或以太网+ IP)。主机适配器是否支持此功能?较新的Linux内核/工具是否支持此功能?可以使用常规电缆吗? 千兆位还不够快,USB 3.1卡价格便宜,并且内置在新的主板中(例如我的主板)。我猜10Gbps以太网将是我的第二选择,但它涉及到购买所有新硬件,因此我必须要二手。
11 linux  networking  usb  ip  ethernet 

3
为什么在某些Linux系统上,根文件系统在mtab中显示为/ dev / root而不是/ dev / <real device node>?
我在各种Linux系统上都看到过/dev/sda1,其中根设备以而不是实际设备节点(例如:)显示为/dev/root,或者不是真实文件系统,mtab它表示的文件系统名为rootfs(在中显示为真实文件系统/proc/filesystems,但是)中没有代码&lt;linux-kernel-source-tree&gt;/fs。已经使用各种工具来使用某些属性来确定实际的根设备节点(例如rdev和Chromium OS rootdev)。除了阅读到一些很小的嵌入式设备不一定总是拥有/dev其根设备的设备节点的信息外,我对此没有任何逻辑上的解释。(这是真的,如果是,是我的问题的答案吗?)为什么mtab有时会说/dev/root(我想我可能已经看过了)rootdev一次)而不是真实设备节点,如何使它始终表示真实设备节点?内核首先root按照cmdline中的参数安装根设备,然后init/systemd根据fstab正确地重新安装它。如果是这样,那么我认为init维持mtab。如果我的理论是正确的,我如何使init真正的根设备节点写入mtab?我注意到这/etc/mtab实际上是到的符号链接/proc/mounts,这意味着mtab由内核维护。那么,如何配置/修补内核,而不是说根设备节点路径是/dev/root,mtab包含真实设备节点?

2
findmnt如何列出绑定安装?
许多人一直在说Linux不保留有关绑定安装的信息,因此无法获取它们及其来源的列表。这里有些例子: 从这里的评论之一: IIRC不会在任何地方保存此信息:之后mount --bind,两个副本是等效的,没有一个副本比另一个副本更“原始”。毕竟,如果您已经卸载了,可能就没有原稿了/mnt。 从这个网站上的答案: 因此,记住什么挂载是绑定挂载的唯一方法是保留在中的挂载命令的日志/etc/mtab。绑定安装操作由bind mount选项指示(这将导致忽略文件系统类型)。但是mount没有选择仅列出通过一组特定的选项集安装的文件系统的选项。 来自Debian错误报告: 这是故意的。两个安装点在所有方面都完全相等,因此内核不会保留任何标志来区分它们。 上面是胡说八道。该工具findmnt能够列出绑定安装的源路径(以device[source-path];形式;我也试图使其仅列出源路径,而不列出设备)。如果Linux内核要维护绑定安装,那么该信息必须存储在某个地方,否则它就不知道/home绑定到了/users。那么这些数据在哪里呢?它是否存储在RAM中的某些模糊区域中?是否findmnt在看/proc什么地方?

2
是否有任何可以成功执行ln -d的文件系统?
从ln的手册页中: -d, -F, --directory allow the superuser to attempt to hard link directories (note: will probably fail due to system restrictions, even for the superuser) 是否有任何文件系统驱动程序实际上允许这样做,还是唯一的选择mount --bind &lt;src&gt; &lt;dest&gt;?还是这种行为被内核阻止,甚至还没有到达文件系统特定的驱动程序? 注意:我实际上并不打算在任何计算机上执行此操作,只是出于好奇。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.