linux内核认识sata磁盘?

linux内核认识sata磁盘?,第1张

早就能用了。只要是用新版本就可以了。不过有的机器硬件太新或者功能特强,还需要用老版没对应驱动的系统。比如服务器的 SAS ,装 RHEL 4.x 系列,一般才需要另找驱动。

bootloader 阶段使用 BIOS 功能,所有的 SATA 默认都有一个简单的 BIOS 读写兼容功能提供支持。也就是说开了 AHCI ,BIOS 依然会提供兼容模式。不过现在的 *** 作系统在内核启动后就会绕过 BIOS 直接 *** 作硬件。这个时候如果开启了 AHCI 模式,那么 IDE 兼容部分的硬件接口模拟就没了,不过 BIOS 自己提供的读写功能虽然继续提供,但系统已然不用了。所以 bootloader 可以读写硬盘并不代表 linux 内核可以读写硬盘。

linux 的驱动有两种存放状态,编入内核或者编成模块。

initrd 里面的就是模块,会被 bootloader 在读取内核时一起读取进入内存。一般内核模块只在需要时载入,可以节省内核的运行体积。但现在新版 linux 内核的 sata 驱动已经高度集成了,所以很多发行版的 SATA 驱动都直接进入内核不需要模块载入方式了。当然这要看系统的设计,有的系统既然 initrd 必然会提供,那么编入内核确实没意义。不过需要另外找驱动的硬件,都是模块方式存在,他们在系统启动时必须存在于 initrd 里面,不然内核自己没法集成,也不能从硬盘里面读取(没驱动没法读盘,没法读盘就没法读驱动)。

BIOS 的 INT13 功能太简单了。限制也特别多,现在都是能不用就不用的。所以这东西现在只有 bootloader 才会用。

第一种方法:使用df命令,这个命令比较常用,大家都很熟悉。问题是这种方法,有时候挂载点和挂载的卷不在同一行,使用脚本分析需要一点技巧的。例如:

orientalson:/home # df

Filesystem 1K-blocks Used Available Use% Mounted on

/dev/sda2 15213032 8043668 7169364 53% /

udev514496 104514392 1% /dev

/dev/mapper/vg_test-lv_test

511980 32840479140 7% /home/mt

orientalson:/home #

上面显示的挂载点/home/mt和她挂载的卷不在同一行,使用shell脚本分析非常麻烦。不过也不是没办法,具体分析可以以后再讲。

第二种方法:使用mount命令,mount -l,这种方法的缺陷在于没有卷的大小,但是挂载点和挂载的卷在同一行。例如:

orientalson:/home # mount -l

/dev/sda2 on / type reiserfs (rw,acl,user_xattr) []

proc on /proc type proc (rw)

sysfs on /sys type sysfs (rw)

debugfs on /sys/kernel/debug type debugfs (rw)

udev on /dev type tmpfs (rw)

devpts on /dev/pts type devpts (rw,mode=0620,gid=5)

securityfs on /sys/kernel/security type securityfs (rw)

/dev/mapper/vg_test-lv_test on /home/mt type reiserfs (rw) []

orientalson:/home #

尽管使用肉眼不是太好看,但是使用shell脚本还是比较容易分析的。

第三种方法:查看文件/etc/mtab。原理是,每新挂载一个卷基本上都会更新这个文件的,那么自然可以通过这个文件来查看挂载点和挂职的卷。这种方法比mount -l稍微清晰了一点,但是,有时候是不可靠的。

orientalson:/home # cat /etc/mtab

/dev/sda2 / reiserfs rw,acl,user_xattr 0 0

proc /proc proc rw 0 0

sysfs /sys sysfs rw 0 0

debugfs /sys/kernel/debug debugfs rw 0 0

udev /dev tmpfs rw 0 0

devpts /dev/pts devpts rw,mode=0620,gid=5 0 0

securityfs /sys/kernel/security securityfs rw 0 0

/dev/mapper/vg_test-lv_test /home/mt reiserfs rw 0 0

orientalson:/home #

上面已经说了基本上会更新这个文件,但是并不总是更新这个问题。如果挂载时使用了-n选项,那么/etc/mtab文件里面就不会新挂载卷的信息。

orientalson:/home # umount /home/mt

orientalson:/home # mount -n /dev/vg_test/lv_test /home/mt

orientalson:/home # cat /etc/mtab

/dev/sda2 / reiserfs rw,acl,user_xattr 0 0

proc /proc proc rw 0 0

sysfs /sys sysfs rw 0 0

debugfs /sys/kernel/debug debugfs rw 0 0

udev /dev tmpfs rw 0 0

devpts /dev/pts devpts rw,mode=0620,gid=5 0 0

securityfs /sys/kernel/security securityfs rw 0 0

orientalson:/home #

linux查看磁盘的信息和挂载磁盘是非常常见的 *** 作。

在购买硬盘插到服务器上后,需要将硬盘挂载到文件系统上,不然是无法使用的。具体可以这样理解,在Windows上的硬盘没有分区也是无法直接使用的。

效果如下

之前sdb后面时没有挂载的,我们挂载到了/data目录下。sdb是单独的一块大硬盘。

进行检查,df -h

这个时候还没有到/etc/fstab 下面配置挂载信息,重启挂载就消失了。

挂载成功后ssh传输文件失败,发现是mount后,/data目录没有一般用户的权限。

执行后就可以使用了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8476860.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存