标签: lsblk

我可以缩短这个过滤器,找到超过 100G 的磁盘大小吗?

我的目标是从 lsblk 获取大于 100G 的磁盘。

我有它的工作,但它很尴尬。我很确定它可以缩短。要么使用与 lsblk 完全不同的东西,要么我可以直接用 awk 过滤人类可读的数字。

这是我整理的:

lsblk | grep disk | awk '{print$1,$4}' | grep G | sed 's/.$//' | awk '{if($2>100)print$1}'
Run Code Online (Sandbox Code Playgroud)

它只输出大于 100G 的磁盘的 sdx 和 nvmexxx 部分。正是我需要的。

我对此很满意,但渴望向您学习更多

grep awk disk lsblk

12
推荐指数
3
解决办法
3009
查看次数

为什么使用dd写入随机数据会导致磁盘分区?

在运行该dd命令之前,该命令lsblk返回以下输出:

NAME              MAJ:MIN  RM   SIZE    RO TYPE  MOUNTPOINT
sda               8:0       0    931.5G  0  disk  
Run Code Online (Sandbox Code Playgroud)

dd if=/dev/urandom of=/dev/sda conv=fsync status=progress运行命令。然而,设备断电并关闭。恢复供电后,该命令lsblk将返回以下输出:

NAME              MAJ:MIN     RM   SIZE    RO TYPE  MOUNTPOINT
    sda           8:0          0   931.5G  0  disk 
      sda2        8:2          0   487.5G  0  disk
Run Code Online (Sandbox Code Playgroud)

partition dd lsblk

11
推荐指数
3
解决办法
2784
查看次数

如何判断我从哪个分区启动?

有没有办法知道您实际从哪个分区启动?

\n

fdisk -l显示了我的 NVME 上绝对没有的“启动”列。这只是遗留信息吗?

\n
Device     Boot     Start       End   Sectors   Size Id Type\n/dev/sda1  *         2048   1126399   1124352   549M  b W95 FAT32\n/dev/sda2         1126400 975688107 974561708 464.7G  7 HPFS/NTFS/exFAT\n/dev/sda3       975689728 976769023   1079296   527M 27 Hidden NTFS WinRE\n\n...\n\nDevice              Start        End    Sectors   Size Type\n/dev/nvme0n1p1     616448 2458216447 2457600000   1.1T Linux filesystem\n/dev/nvme0n1p2 2458216448 3907024031 1448807584 690.8G Linux filesystem\n/dev/nvme0n1p3       2048     616447     614400   300M EFI System\n\nPartition table entries are not in disk order.\n
Run Code Online (Sandbox Code Playgroud)\n

考虑lsblk到 /boot/efi 已安装,我 90% 确定它正在使用我的 nvme 驱动器,我只是想确认这是真的,即使没有任何boot指示 …

linux fdisk lsblk

7
推荐指数
1
解决办法
3550
查看次数

如何捕获所有没有文件系统的磁盘

我想捕获所有没有文件系统的磁盘(所有mkfs不在其上运行的磁盘)

我尝试了以下操作,但仍然提供操作系统( sda )。

使用lsblk或其他命令捕获所有没有文件系统的磁盘的最佳方法是什么?

  lsblk -f | egrep -v "xfs|ext3|ext4"
  NAME             FSTYPE      LABEL UUID                                   
  MOUNTPOINT
 fd0
  sda
 ??sda2           LVM2_member       v0593a-KiKU-9emb-STbx-ByMz-S95k-jChr0m
 ??vg00-lv_swap swap              1beb675f-0b4c-4225-8455-e876cafc5756   
 [SWAP]
 sdg
 sdh
 sdi
 sdj
 sdk
 sr0
Run Code Online (Sandbox Code Playgroud)

linux filesystems mkfs lsblk

6
推荐指数
1
解决办法
1732
查看次数

如何设置磁盘(不是分区)的LABEL?

我一直在四处寻找,但找不到明确的答案,或者当我的系统向我显示其他情况时,我发现答案是“否”。

\n

我正在运行 Arch Linux,在将新 HDD 连接到 ZFS 池时,我注意到我的主 SSD 系统驱动器有一个LABEL属性/属性(不确定术语是什么)。

\n

注意:我说的是驱动器,而不是该驱动器内的分区。

\n

我真的很想让我的其他磁盘有一个LABEL这样的功能,但不知道如何完成。

\n

有人知道如何实现这一目标吗?

\n

下面是一个清理后的输出,lsblk以说明我正在寻找的内容。\n在我的系统中,<#LABEL1#>设置如输出中所示,我想设置/更改<#WANTTHIS#>

\n
NAME      SIZE TYPE LABEL        PTTYPE PTUUID                               MODEL                 SUBSYSTEMS\nloop0   ###.#M loop                                                                                block\nloop1   ###.#M loop                                                                                block\nloop2   ###.#M loop                                                                                block\nloop3   ###.#M loop                                                                                block\nsda     ###.#G disk <#LABEL1#>   gpt    aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa SomeModelString1      block:scsi:pci\n\xe2\x94\x9c\xe2\x94\x80sda1  ###.#M part <#LABEL1#>   gpt    aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa                       block:scsi:pci\n\xe2\x94\x9c\xe2\x94\x80sda2  ###.#M part <#LABEL1#>   gpt    aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa                       block:scsi:pci\n\xe2\x94\x9c\xe2\x94\x80sda3  ###.#M part <#LABEL1#>   gpt    aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa                       block:scsi:pci\n\xe2\x94\x9c\xe2\x94\x80sda4  ###.#G part …
Run Code Online (Sandbox Code Playgroud)

arch-linux udev lsblk

6
推荐指数
1
解决办法
2213
查看次数

为什么从 Thunar 弹出后,usb 驱动器与 `lsblk` 不可见?

如果我放入一个 USB 驱动器,它会自动挂载。我可以看到它lsblk

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sdb      8:16   1   7,5G  0 disk 
??sdb1   8:17   1   7,5G  0 part /media/user/usb-drive
Run Code Online (Sandbox Code Playgroud)

如果我用 umount 卸载它

umount /media/user/sdb1
Run Code Online (Sandbox Code Playgroud)

它仍然可以使用lsblk,但不再安装:

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sdb      8:16   1   7,5G  0 disk 
??sdb1   8:17   1   7,5G  0 part
Run Code Online (Sandbox Code Playgroud)

但是如果我通过单击 Thunar(xfce 文件管理器)中的弹出图标来弹出它,它将从lsblk. 为什么呢?

mount thunar unmounting disk lsblk

5
推荐指数
1
解决办法
1618
查看次数

我可以在没有 fdisk 或 lsblk 的情况下列出未安装的驱动器吗?

我有一个 Inteno dg200 路由器,运行一些 Iopsys linux 版本(我相信内核 3.14 左右)

我在使用 USB 端口和外部硬盘运行文件共享时遇到了一些问题。系统支持。但无论我放入什么,它都不会自动挂载。因此,今天我决定以 root 身份 ssh 进入系统,而不是使用基于 Web 的控制面板。

令我惊讶的是,该系统不支持在已连接的未安装驱动器上查找信息的常用方法。请允许我详细说明一下:

# fdisk -l
-ash: fdisk: not found
Run Code Online (Sandbox Code Playgroud)

很好,那么让我们尝试其他方法:

# lsblk
-ash: lsblk: not found
Run Code Online (Sandbox Code Playgroud)

于是我开始遇到麻烦。根据我在网上了解到的情况,当人们遇到这个问题时,通常是因为fdisk位于/sbin中,而这不在他们的路径中,因为他们不是 root。好吧,我是这里的 root,但为了确定我检查了/sbin/usr/sbin,但无济于事。两个目录都不包含任何名为fdisk或 的内容lsblk,该find命令也找不到任何名为 的内容fdisk

有没有其他方法可以从 CLI 找出到底要安装什么,或者我可以安装fdisk在路由器上吗?

mount fdisk external-hdd router lsblk

5
推荐指数
1
解决办法
1万
查看次数

在bash中迭代字符串变量行

我有一个脚本,我想在其中使用命令列出 USB 设备lsblk

命令:

$ lsblk -o NAME,TRAN,VENDOR,MODEL | grep usb
Run Code Online (Sandbox Code Playgroud)

这导致

sdb   usb    Kingston DataTraveler 2.0
sdc   usb    Kingston DT 101 G2 
Run Code Online (Sandbox Code Playgroud)

我想将结果保存在一个变量中以便以后工作,所以我写

$ usbs=$(lsblk -o NAME,TRAN,VENDOR,MODEL | grep usb)
Run Code Online (Sandbox Code Playgroud)

我期待的是变量usbs将结果存储在两整行中,如上所示。但如果我跑:

for i in ${usbs[@]}; do
  echo $i
done
Run Code Online (Sandbox Code Playgroud)

我把结果分成几个词:

sdb
usb
Kingston
DataTraveler
2.0
sdc
usb
Kingston
DT
101
G2
Run Code Online (Sandbox Code Playgroud)

问题: 有没有办法,使用grep命令,我可以将命令的结果存储为两整行?

我更愿意知道是否有一个简单的解决方案,而不是将结果转储到文件中然后读取它。

grep bash usb variable lsblk

5
推荐指数
2
解决办法
2005
查看次数

如何更新/刷新 lsblk 报告的已更改的部分标签?

在 Linux 上,该命令lsblk -o partlabel将显示partlabel块设备。

我曾经gdisk改变过一个partlabel.

更改后,lsblk仍报告 的旧值partlabel

(旁白:路径/dev/disk/by-partlabel/*也仍在使用旧partlabel值。)

有没有办法刷新缓存以便lsblk报告 的新值partlabel

我不确定缓存到底在哪里。它可能是 udev、sysfs 或其他地方。

相比之下,blkid正确报告新的partlabel. 但是,我希望我可以避免切换到blkid(出于各种原因)。

(旁白:重新启动可能会更新这些partlabel值。但如果可能的话,我宁愿避免重新启动。)

linux udev sysfs partition-table lsblk

5
推荐指数
1
解决办法
7131
查看次数

bash + 如何将 arg 与 Linux 机器中的磁盘之一进行比较

我可以使用以下命令捕获 Linux 机器的磁盘设备:

\n
lsblk -lnb | numfmt --to=iec --field=4 | grep disk | awk '{print $1}'\nsda\nsdb\nsdc\nsdd\n
Run Code Online (Sandbox Code Playgroud)\n

在我的 bash 脚本中,我使用下面的行来测试脚本的参数是否与我的计算机上的磁盘之一匹配:

\n
if [[ ` lsblk -lnb | numfmt --to=iec --field=4 | grep disk | awk '{print $1}' | grep -c $arg ` != 0 ]] \nthen\necho \xe2\x80\x9cargument is a disk\xe2\x80\x9d\n.\n.\n.\n\nfi\n
Run Code Online (Sandbox Code Playgroud)\n

我运行脚本为

\n
bash /tmp/verify_disks  <some arg>\n
Run Code Online (Sandbox Code Playgroud)\n

但如果 case$arg被误认为arg=\xe2\x80\x9d\xe2\x80\x94help\xe2\x80\x9d,或者 case$arg为 null,我会得到以下异常:

\n
Usage: grep [OPTION]... PATTERN [FILE]...\nTry 'grep --help' for more information.\n …
Run Code Online (Sandbox Code Playgroud)

grep bash lsblk

5
推荐指数
3
解决办法
634
查看次数