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

我在地下室找到了一块6GB的IDE硬盘。我想插上它看看里面有什么。这个硬盘在BIOS中似乎被识别了。
我在Ubuntu中找不到它以查看文件,而Ubuntu是那台电脑上唯一的操作系统。我想知道Ubuntu是否有类似于Windows功能“我的电脑”的东西,列出所有可用的驱动器/存储设备。通常,“我的电脑”会显示C:,可以打开以查看您的所有目录和文件。此时,它与Ubuntu的主文件夹非常相似。
如何查看/选择该驱动器或所有可用HDD的所有可用分区,而不会格式化或以任何方式篡改内容?

9使用Gparted,但要小心!这是一个危险的工具。如果只是查看分区,那就没问题了。 - user164752
df -h --human-readable 是一个很好的、简洁的方法来执行此操作。(请指出我可能犯的任何错误)谢谢!祝未来一切顺利。//Will - William Martens
11个回答

有很多方法,但我最喜欢的是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提供的选项来尝试不同的选项。与例如fdiskparted相比,我喜欢lsblk的友好信息显示方式。


9对于这个,我似乎不需要使用sudo - szabgab
1如何修改硬盘的标签? - Jono
5这个命令甚至可以使用lsblk --output-all --json以JSON格式输出,太棒了! - Zren
@Zren说得像个开发者! - asgs
显示硬盘型号名称:https://unix.stackexchange.com/a/94211/221416 - mrgloom

命令行解决方案:
检查系统可以看到哪些驱动器: ``` 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

我同意Luis的观点,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

使用以下命令行,它们将一起为您提供分区的良好概述(位置、大小、可用空间和挂载点),
df -h
sudo parted -ls
sudo lsblk -f
sudo lsblk -m

如果您的终端窗口足够宽(例如130个字符),您可以将lsblk命令组合起来使用。
sudo lsblk -fm

要列出硬盘/磁盘,我使用

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

Nautilus(您查看家庭文件夹的地方)将显示系统上所有已挂载的驱动器。如果计算机识别到该驱动器,您可以挂载它并开始使用。
有关挂载驱动器的指示和信息,请参阅此处:https://help.ubuntu.com/community/Mount

以下解决方案非常简单、清晰,采用图形界面方法,并且能够准确显示硬盘上的布局:
  1. 打开主要启动列表中的"系统工具"
  2. 启动"GParted"
  3. 输入密码(如果您是管理员,则应该是您的登录密码)。 将显示硬盘布局、分区大小和已使用量。
  4. 退出GParted应用程序

注意:除非您知道自己在做什么,否则不要更改任何内容!


(在之前关于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                     /

我已经创建了一些正则表达式,以帮助那些想要将这些数据读入某个应用程序的人。
为了做到这一点,当你使用"-P"命令时,lsblk命令会更有用。下面是一个例子:
$ 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

如果你在node中这样做,你可以使用一些代码将字符串转换为一个出现次数的数组。
stdout.split("\n").map(function(x){return x.split(/(.*) on (.*) type (.*) \((.*\))/g)}); 

晚回答,但试试这个:
1. 打开文件(从应用程序或打开文件夹) 2. 进入“文件系统” 3. 进入“媒体” 4. 进入您的用户文件夹,例如Lola Chang(来自Ubuntu.com) 5. 它应该列出所有已连接的驱动器,不包括SDA 1(在您的情况下可能是C:)