如何查看所有可用的硬盘/分区?


245

我在地下室发现了一个6 GB的IDE硬盘。我想插入它,看看上面可能有什么。该驱动器似乎可以在BIOS中识别。

我在Ubuntu中找不到它来查看文件,而Ubuntu是该特定计算机上的唯一操作系统。我想知道Ubuntu是否具有Windows功能“我的电脑”的等效功能,该功能列出了所有可用的驱动器/存储设备。通常,“我的电脑”显示C :,可以打开以查看所有目录和文件。在这一点上,它与Ubuntu的主文件夹非常相似。

如何查看/选择该驱动器的所有可用分区或所有可用HDD,而不用任何方式格式化或篡改内容?


6
使用Gparted,但要小心!这可能是一个危险的工具。如果您只看分区就可以了

可能重复(甚至可能是典型问题):哪个硬盘驱动器是哪个?
彼得·莫滕森

Answers:


420

有很多办法,但我最喜欢的是lsblk。这是一个示范:

sudo lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL

这将显示以下内容:

NAME   FSTYPE   SIZE MOUNTPOINT LABEL
sda           111.8G            
├─sda1 swap     121M [SWAP]     
└─sda2 ext4   111.7G /          
sdb             2.7T            
└─sdb1 ext4     2.7T            xtreme
sdc             3.7T            
└─sdc1 ext4     3.7T            titan

它显示:

  • 驱动器的名称及其具有的分区。
  • 文件系统的类型。
  • 整个驱动器的大小以及每个分区的大小。
  • 挂载点以及它们的标签(如果有)。

您可以通过先查看可用的选项来试用这些选项lsblk --help。我喜欢这样做lsblk是因为以友好的方式显示信息,例如与fdisk或进行比较parted


21
谢谢,lsblk对我来说,它比fdisk更具可读性。
Aditya MP

5
完美,无需安装任何工具即可完成此操作。
贾斯汀

6
我似乎不需要sudo这个。
szabgab

1
您如何修改硬盘标签?
jonney

4
这个命令甚至可以输出为json了lsblk --output-all --json
Zren

83

命令行解决方案:

  • 检查您的系统可以看到的驱动器:

    sudo fdisk -l
    

如果驱动器在列表中,您将能够查看驱动器上有哪些分区,如下所示:

Disk /dev/sda: 160.0 GB, 160041885696 bytes
...

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *          63      208844      104391   83  Linux
/dev/sda2          208845     2313359     1052257+  82  Linux swap / Solaris
/dev/sda3         2313360   312576704   155131672+  83  Linux

然后在某处创建目录并挂载其中一个分区。例如,要将dev/sda3只读的FAT32分区挂载到目录中,/media/my_test_mount您可以执行以下操作

sudo mount -t cifs -o ro /dev/sda3 /media/my_test_mount

这种方法为您提供了更多控制权,因为您可以使用不同的安装选项,例如以只读方式安装分区。

有关man mount详细信息,请参见。


22

第二,我认为路易斯lsblk(8)可能是最简单明了的解决方案。可视化其中的内容非常容易,并且可以快速为您提供所需的所有信息:

sudo lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL

为了您的方便,这是可以使用的所有可用列的列表。

Available columns:
       NAME  device name
      KNAME  internal kernel device name
    MAJ:MIN  major:minor device number
     FSTYPE  filesystem type
 MOUNTPOINT  where the device is mounted
      LABEL  filesystem LABEL
       UUID  filesystem UUID
         RO  read-only device
         RM  removable device
      MODEL  device identifier
       SIZE  size of the device
      STATE  state of the device
      OWNER  user name
      GROUP  group name
       MODE  device node permissions
  ALIGNMENT  alignment offset
     MIN-IO  minimum I/O size
     OPT-IO  optimal I/O size
    PHY-SEC  physical sector size
    LOG-SEC  logical sector size
       ROTA  rotational device
      SCHED  I/O scheduler name
    RQ-SIZE  request queue size
       TYPE  device type
   DISC-ALN  discard alignment offset
  DISC-GRAN  discard granularity
   DISC-MAX  discard max bytes
  DISC-ZERO  discard zeroes data

6

Nautilus(您在其中查看主文件夹的位置)将显示系统上所有已安装的驱动器。如果计算机识别出该驱动器,则可以将其安装并开始使用。

有关安装驱动器的说明和信息,请参见:https : //help.ubuntu.com/community/Mount


6

要列出硬盘驱动器/磁盘,我使用

sudo parted -l

输出:

Model: ATA Samsung SSD 850 (scsi) 
Disk /dev/sda: 250GB 
Sector size (logical/physical): 512B/512B 
Partition Table: msdos

Number  Start   End    Size   Type      File system  Flags  
 1      1049kB  256MB  255MB  primary   ext2         boot
 2      257MB   120GB  120GB  extended  
 5      257MB   120GB  120GB  logical   lvm


Model: Linux device-mapper (linear) (dm) 
Disk /dev/mapper/ubuntu--vg-swap_1: 8573MB 
Sector size (logical/physical): 512B/512B 
Partition Table: loop

Number  Start  End     Size    File system     Flags  
 1      0.00B  8573MB  8573MB  linux-swap(v1)


Model: Linux device-mapper (linear) (dm) 
Disk /dev/mapper/ubuntu--vg-root: 111GB 
Sector size (logical/physical): 512B/512B 
Partition Table: loop

Number  Start  End    Size   File system  Flags
 1      0.00B  111GB  111GB  ext4

然后按照其他人的建议列出分区,您可以使用:

sudo lsblk -f

哪个会告诉您文件系统分区类型


parted给我硬件信息并lsblk给我分区信息。看起来像我所需要的。不幸的是,没有一个命令可以记录所有内容以支持灾难恢复。谢谢!
Suncat2000

4

下面的解决方案非常简单,清晰,是一种GUI方法,它可以向您确切显示在硬盘上的布局:

  1. 转到:主启动列表中的“系统工具”
  2. 启动“ GParted”
  3. 输入密码(如果您是管理员,则应为登录密码。)将显示HDD布局,分区大小和使用的数量。
  4. 退出GParted应用程序

注意:除非您知道自己在做什么,否则请勿进行任何更改!


2

(以先前关于的建议为基础lsblk)。

对于懒惰的打字员(如果您不需要尺寸),可以使用:

sudo lsblk -f

与使用相同 -o NAME,FSTYPE,LABEL,MOUNTPOINT

例如

NAME                 FSTYPE             LABEL MOUNTPOINT
sda
└─sda1               ntfs             TOSHIBA
sdb
└─sdb1               LVM2_member
  └─root-root (dm-0) ext4                     /

2

使用以下命令行,可以使您对分区有一个很好的概览(位置,大小,可用空间和安装点),

df -h
sudo parted -ls
sudo lsblk -f
sudo lsblk -m

如果您的终端窗口足够宽(例如130个字符),则可以将lsblk命令组合为

sudo lsblk -fm

1

答案较晚,请尝试以下操作:

  1. 打开文件(破折号中的应用程序或打开文件夹)
  2. 转到“文件系统”
  3. 转到“媒体”
  4. 进入您的用户Eg Lola Chang(来自Ubuntu.com)
  5. 它应该列出所有连接的驱动器,但不包括SDA 1(在您的情况下可能为C :)

1

我创建了一些正则表达式来帮助那些想要将这些数据读入某些应用程序的人。

为此,lsblk命令在使用“ -P”命令时更有用。这里有个例子:

$ lsblk -P -o KNAME,FSTYPE,SIZE,MOUNTPOINT,LABEL,MODEL
KNAME="sda" FSTYPE="" SIZE="80G" MOUNTPOINT="" LABEL="" MODEL="VBOX HARDDISK   "
KNAME="sda1" FSTYPE="" SIZE="243M" MOUNTPOINT="/boot" LABEL="" MODEL=""
KNAME="sda2" FSTYPE="" SIZE="1K" MOUNTPOINT="" LABEL="" MODEL=""
KNAME="sda5" FSTYPE="" SIZE="79.8G" MOUNTPOINT="" LABEL="" MODEL=""
KNAME="dm-0" FSTYPE="" SIZE="79G" MOUNTPOINT="/" LABEL="" MODEL=""
KNAME="dm-1" FSTYPE="" SIZE="768M" MOUNTPOINT="[SWAP]" LABEL="" MODEL=""
KNAME="sr0" FSTYPE="" SIZE="1024M" MOUNTPOINT="" LABEL="" MODEL="CD-ROM          "
KNAME="sr1" FSTYPE="" SIZE="1024M" MOUNTPOINT="" LABEL="" MODEL="CD-ROM          "

您可以使用一些正则表达式阅读此输出

/KNAME=\"(.*)\" FSTYPE=\"(.*)\" SIZE=\"(.*)\" MOUNTPOINT=\"(.)*\" LABEL=\"(.*)\" MODEL=\"(.*)\"/g

http://regex101.com/r/uX5eG3/1

如果不需要分区的大小,可以使用mount -l

$ mount -l
/dev/mapper/precise32-root on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
/dev/sda1 on /boot type ext2 (rw)
rpc_pipefs on /run/rpc_pipefs type rpc_pipefs (rw)
/vagrant on /vagrant type vboxsf (uid=1000,gid=1000,rw)

然后像这样使用正则表达式阅读

/(.*) on (.*) type (.*) \((.*)\)/g

http://regex101.com/r/nE4pQ9/1

如果您在节点中执行此操作,则可以使用以下代码将字符串转换为出现的数组:

stdout.split("\n").map(function(x){return x.split(/(.*) on (.*) type (.*) \((.*\))/g)}); 
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.