我通常知道如何在UNIX系统中安装硬盘驱动器。但是我对一件事感到困惑。说我有disk #1disk #2。我将disk #1装入sudo mount /dev/sda1 /mnt/drive。我怎么知道sda1将分配给disk #1而不是disk #2,尤其是在Raspberry Pi重新启动后?换句话说,如何分别将sda1sdb1分配给磁盘#1和#2,并防止其在重新引导后彼此交换?

评论

这是一个好问题,因为在多磁盘系统上,重新引导后/ dev / sda并不总是/ dev / sda。

#1 楼

磁盘驱动器通过其UUID(通用唯一标识符)来区分。
您可以使用以下命令找到硬盘的UUID:ls -l /dev/disk/by-uuid/
,那么您必须创建挂载点sudo mkdir /MOUNT/POINT1
,并更改它们的权限sudo chmod 775 /MOUNT/POINT1
,然后在您的硬盘上添加一行fstab文件(位于/ etc / fstab)看起来像这样:

UUID=BLAHBLAH12341234 /MOUNT/POINT1 ntfs-3g rw,defaults 0 0
UUID=12341234BLAHBLAH /MOUNT/POINT2 ext rw,defaults 0 0


当然,您必须根据文件系统等对其进行更改。
然后保存文件并重新启动,您的HD将自动安装到给定的安装点。

评论


正如我在回答中指出的那样,不是驱动器,而是由UUID标识的驱动器上的分区。 (有细微的差别。)如果重新格式化驱动器,则会创建一个新分区,该分区将获得新的UUID。

–弗雷德
2014年3月22日在16:56

“ / MOUNT / POINT1”是什么意思?这是安装点的字面定义吗?

– IgorGanapolsky
16年8月14日在18:55



@IgorGanapolsky只是您要挂载分区的文件夹的名称。根据需要选择。

–ios.id0
16年8月15日在3:24

比重新启动更好的是执行sudo mount -a并查看是否有任何错误。如果有,可能导致系统无法启动。

– Jan
19年4月25日在0:30

#2 楼

严格来说,这是一个通用的Linux问题,但是答案始终是分区UUID(通用唯一标识符)。就像名字在罐子上说的那样,格式化分区时,会生成一个随机的唯一ID来描述它。您可以使用此挂载来确保始终获得正确的分区。 blkid命令提供了当前连接的设备的UUID列表,例如:

/dev/sda4: UUID="2d02d277-a79c-4818-adc7-c37484e17c6a" TYPE="ext3" 


这将对应于/ dev设备,在这种情况下为/dev/disk/by-uuid/2d02d277-a79c-4818-adc7-c37484e17c6a。您可以使用它进行安装。您可以在/etc/fstab中使用稍短的符号来指定应该安装驱动器:

UUID=2d02d277-a79c-4818-adc7-c37484e17c6a /mnt/backup ext3 defaults 0 0


请参阅此处了解更多详细信息,或在此处查看UUID搜索结果。

评论


当我输入blkid时,我什么也没得到!

– IgorGanapolsky
16年8月14日在18:56

@IgorGanapolsky尝试sudo blkid。显然blkid需要root特权,但是默认情况下,在Raspberry Pi上,您将以非特权用户pi身份登录。

– herzbube
16-09-24在16:30

#3 楼

感谢加布里埃尔(Gabriel)的变通方法,在这里(树莓2)也遇到了同样的问题。 > /43/rc.local中的
sudo mount -a


完成了这项工作。

#4 楼

好吧,正确与不正确
就我而言,RPI v2 4内核自v1版本以来发生了一些变化,例如:
编辑fstab以便在启动时自动挂载外部hdd根本无法运行,没有使用uuid,不使用/ dev / sda1

问题是我必须在完全启动后等待30秒才能安装我的外部硬盘驱动器,奇怪的是USB记忆棒上的fstab可以完美运行。 br />所以,我做了一个剧本来睡30; sudo mount -a结束操作。

这是/ etc / fstab

pi@raspberrypi ~ $ cat /etc/fstab 
proc            /proc           proc    defaults          0       0
/dev/mmcblk0p1  /boot           vfat    defaults          0       2
/dev/mmcblk0p2  /               ext4    defaults,noatime  0       1
# a swapfile is not a swap partition, so no using swapon|off from here on, use  dphys-swapfile swap[on|off]  for that


并添加了最后一行


UUID=3d81d9e2-7d1b-4015-8c2c-29ec0875f762 /media/250_gb ext4 defaults 0 0



这是我的/etc/rc.local扩展名

# Begin all drives remount
clear
echo "Please wait 30 seconsds in order to remount all missing drives !!!"
for x in `seq 1 30`
do
echo -n "."
sleep 1
done
sudo mount -a
sudo service minidlna force-reload

# End drives remount 

exit 0


使用jmicron usb适配器,没有30秒钟的等待,它表示即使lsusb获得了正确的Jmicron适配器,该设备也不存在
要把它挖到更深的地下!!!

这是我的电视中的2快照
之前

之后


gabriel@linux-romania.com

评论


问题是关于磁盘排序,而不是关于不可用的设备。

– mpromonet
15年3月18日在19:41

不知道为什么你被否决了。我注意到了同样的问题。我没有SSD问题。我挂载磁盘驱动器时出现问题。最终写了一个脚本来延迟安装使其正常工作。

– Unikorn
20 Mar 23 '20 at 4:45