我发现我无法安装设备 sdb。
然而,我在坐骑上没看到它:
[root@idh1 rhs-hadoop-install-0_61]# mount | grep --color dev
/dev/mapper/VolGroup-lv_root on / type ext4 (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
/dev/mapper/VolGroup-lv_home on /home type ext4 (rw)
我没有看到任何指向它的符号链接挂载:
[root@idh1 rhs-hadoop-install-0_61]# ls -altrh /dev/* | grep sd
brw-rw---- 1 root disk 8, 16 Feb 4 14:43 /dev/sdb
brw-rw---- 1 root disk 8, 17 Feb 4 14:43 /dev/sdb1
brw-rw---- 1 root disk 8, 0 Feb 4 14:43 /dev/sda
brw-rw---- 1 root disk 8, 2 Feb 4 14:43 /dev/sda2
brw-rw---- 1 root disk 8, 1 Feb 4 14:43 /dev/sda1
lrwxrwxrwx 1 root root 6 Feb 4 14:43 8:16 -> ../sdb
lrwxrwxrwx 1 root root 7 Feb 4 14:43 8:17 -> ../sdb1
lrwxrwxrwx 1 root root 6 Feb 4 14:43 8:0 -> ../sda
lrwxrwxrwx 1 root root 7 Feb 4 14:43 8:2 -> ../sda2
lrwxrwxrwx 1 root root 7 Feb 4 14:43 8:1 -> ../sda1
这些指向的神奇“箭头”是什么../sdb
?看来它们可能让 sdb 变得“繁忙”,以致我无法格式化它。
答案1
这里的问题是您使用了通配符,同时 grep 命令也对您隐藏了内容。
shell 会为您扩展通配符,因此对于 中的每个文件和目录, shell 都会ls
将该命令视为等等。您可以通过执行以下命令来演示 shell 如何扩展通配符。ls /dev/autofs /dev/block /dev/bsg
/dev/
ls
echo /dev/*
这样做的副作用是,所有文件夹中的所有文件/dev/
也会列出。由于您的ls
命令(在 shell 扩展通配符之后)包含一堆目录,因此每个目录都有自己的标题。因此实际输出如下所示:
brw-rw---- 1 root disk 8, 16 Feb 4 14:43 /dev/sdb
brw-rw---- 1 root disk 8, 17 Feb 4 14:43 /dev/sdb1
brw-rw---- 1 root disk 8, 0 Feb 4 14:43 /dev/sda
brw-rw---- 1 root disk 8, 2 Feb 4 14:43 /dev/sda2
brw-rw---- 1 root disk 8, 1 Feb 4 14:43 /dev/sda1
...
/dev/block:
total 0
lrwxrwxrwx 1 root root 6 Feb 4 14:43 8:16 -> ../sdb
lrwxrwxrwx 1 root root 7 Feb 4 14:43 8:17 -> ../sdb1
lrwxrwxrwx 1 root root 6 Feb 4 14:43 8:0 -> ../sda
lrwxrwxrwx 1 root root 7 Feb 4 14:43 8:2 -> ../sda2
lrwxrwxrwx 1 root root 7 Feb 4 14:43 8:1 -> ../sda1
但是,该/dev/block
行被grep
命令隐藏了,所以你看不到它。尝试不使用grep
,也许使用less
,以清楚地看到ls
输出的内容。
更令人困惑的是,8:16
in8:16 -> ../sdb
是一个文件名,而不是时间戳或其他任何东西。/dev/block/8:16
是块设备的名称,它被符号链接到../sdb
,或者/dev/sdb
像它一样。
您可以ls
通过指定标志来停止扩展子目录d
。
ls -altrhd /dev/* | grep sd
或者当然也可以不在后面放置通配符/dev/
:
ls -altrh /dev/ | grep sd
答案2
首先,您不想挂载sdb
设备上的分区sdb1
。这就是您无法挂载它的原因。
至于魔法箭,它们不是魔法或箭,文件名实际上是时间后的数字:
lrwxrwxrwx 1 root root 6 Feb 4 14:43 8:16 -> ../sdb
----
|-> File name
箭头本身是符号链接的标准符号。一般格式为:
link_name -> /path/to/target
这些实际上不是在,/dev
而是在/dev/block
,并且正确指向/dev/sdb
来自(是父目录)。列出它们的原因是因为您运行的../sdb
是而不是,所以还列出了所有子目录的内容。/dev/block
..
ls /dev/*
ls /dev/
您可以通过运行以下命令来检查所有这些:
$ ls -lath /dev/sd*
brw-rw---- 1 root disk 8, 16 Feb 4 14:43 /dev/sdb
brw-rw---- 1 root disk 8, 17 Feb 4 14:43 /dev/sdb1
brw-rw---- 1 root disk 8, 0 Feb 4 14:43 /dev/sda
brw-rw---- 1 root disk 8, 2 Feb 4 14:43 /dev/sda2
brw-rw---- 1 root disk 8, 1 Feb 4 14:43 /dev/sda1
$ ls -lath /dev/block/sd*
lrwxrwxrwx 1 root root 6 Feb 4 14:43 8:16 -> ../sdb
lrwxrwxrwx 1 root root 7 Feb 4 14:43 8:17 -> ../sdb1
lrwxrwxrwx 1 root root 6 Feb 4 14:43 8:0 -> ../sda
lrwxrwxrwx 1 root root 7 Feb 4 14:43 8:2 -> ../sda2
lrwxrwxrwx 1 root root 7 Feb 4 14:43 8:1 -> ../sda1