linux挂载硬盘

  • 查看硬件设备
在root下输入lsblk 查看硬件设备(lsblk可以看成是“List block device”的缩写,即列为出所有存储设备。)。
mount /dev/sdb1 /mnt/usb
查看cat /etc/mtab文件显示当前系统已挂载的所有设备
------------------------------------------------------
fdisk -l
mkfs.ext4 /dev/vdb
mkdir /tools
mount /dev/vdb /tools/
------------------------------------------------------
  • 给服务器添加一块硬盘
1>给虚拟机添加一个硬盘
2>使用 df -h 查看电脑硬盘信息(显示已挂在的硬盘)
3>使用 fdisk -l 查看电脑所有磁盘信息包括未加载磁盘
4>使用 lsblk 检查哪块磁盘未挂载和分区
5>用 fdisk 对这块硬盘分区(当硬盘小于等于2T时,用fdisk,大于2T时,用parted)
   fdisk /dev/sdb
   #按 m 显示菜单(menu)
   #选择 n (add a new partition,创建新分区)
   #p建立主分区,e建立扩展分区(主分区编号为hda1-4,逻辑分区从5开始。)
   #选择分区号等等...(First Sector 表示起始扇区,Last sector 结束分区,回车默认即可),此时第一个分区已经建立,但还是在内存中并没有写到硬盘sdb中,输入w写入到硬盘,输入q退出而不保存。
6>使用 partprobe 内核重新读取分区表(若系统无法识别分区表则执行此步骤;注意:这里是整个磁盘sdb,不是磁盘分区sdb1)
   partprobe /dev/sdb
7>使用 mkfs 创建文件系统(格式化分区)
   mkfs.ext4 /dev/sdb1 
8>使用 mount 临时挂载目录(重启后消失)
   mount /dev/sdb1 /xxx/
9>编辑 /etc/fstab 永久挂载目录(转存:0 不转存,不备份     1转存,备份;fsck:开机检查磁盘的顺序  0表示不检查  1234....为检查顺序)
   #/etc/fstab每列含义如下(磁盘路径可用UUID,查看UUID blkid)
 	硬盘路径     文件路径(挂载点)  文件系统类型  设备的自定义选项  是否转存  fsck的顺序
   /dev/sdb1                    /xxx                   ext4    defaults        0 1
10>使用 mount -a 判断加载是否正确
   #如果没有其他信息出现,表示你插入的正确,否则错误。
   #如果错误且没有检查,开机后将进入紧急模式,无法开机
   #最后开机重启后df -h一下,看看是否正常
11>当硬盘大于2T时,使用 fdisk -l 会有WARING.
   #WARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted.
   #(/dev/sdb大于2T),上面警报说 fdisk不支持该分区,使用 parted 分区.
12>使用 parted 分区大于2T的硬盘
   parted /dev/sdb       (用part命令对3T硬盘进行分区处理)
   mklabel gpt              (用gpt格式可以将3TB弄在一个分区里)
   unit TB                     (设置单位为TB)
   mkpart primary 0 3   (设置为一个主分区,大小为3TB,开始是0,结束是3)

   mkpart primary 3 6   (再设置为一个主分区,大小为3TB,开始是3,结束是6)
   print                         (显示设置的分区大小)
   quit                         (退出parted程序)
  • Linux系统中根目录下或者新挂载的磁盘目录下有一个叫lost+found
    如果你运行fsck命令(文件系统检查和修复命令),它也许会找到一些数据碎片,这些文件碎片在硬盘中并没有引用。特别的,fsck也许能找到看起来是完整的文件,但是在系统中没有名字-一个inode但是不对应文件名。这个数据仍然占用硬盘空间,但是并不能通过正常方式访问。
    lost+found目录的文件通常是未链接的文件(名字已经被删除),但是这些文件还被一些进程使用(数据没有删除),在突然关机时(内核panic或者突然断电)出现。这些文件系统会自动删除。
    当因为软件或者硬件出现错误,导致文件系统不一致,也有可能把有问题的文件放到lost+found目录。它提供了恢复丢失文件的一种方法。
    如果你不小心删除了lost+found目录,不能使用mkdir命令创建lost+found目录,应该使用mklost+found命令创建它。
  • 其他说明
/etc/fstab是在开机时起作用,相当于在开机时执行了mount和fsck命令,系统根据/etc/fstab配置的信息自动挂载相关分区,自动挂载之后,/etc/mtab会被更新。
/etc/mtab是当前分区的挂载信息,如果挂载信息改变就会更新/etc/mtab文件。开机后,系统根据/etc/fstab的配置信息自动挂载分区,再更新/etc/mtab中的信息。
mount命令的使用不会改变/etc/fstab,而会改变/etc/mtab。

###卸载
umount /dev/sdb1	或 umount /xxx
  • 新硬盘挂载目录后文件消失解决办法
项目初期用户文件较少,全部存储在/home目录下,/home目录没有单独划开分区,随着项目网站做大,用户文件越来越多,/home目录不够空间,想挂载一个新硬盘来负责储存。
但发现新挂载/home到新硬盘时,/home原来数据变空了,这个原因是由于linux的VFS(虚拟文件系统)机制导致的,正常登录以后,所看到的各个目录,文件都是内核在加载时候构造在内存中的VFS目录树,而不是直接看到硬盘上的实际目录树。
当你挂载某个设备到一个VFS挂载点上时(比如/home),系统就把VFS中的这个挂载点/home指向你最后所挂载的那个设备上。那么你现在访问该挂载点时,就会看到你最后挂载在此处的设备。而之前所挂载的设备依然在那里,只不过挂载点/home已经不再指向之前的设备。
所以之前的数据是被隐藏了,但并没有删除,若umount挂载后,数据又重新回来了
基于这种情况,只能通过跳板的方式把原来的/home数据复制到新的/home分区下了 ,如何添加新硬盘,请查找相关资料
mkdir /new  ###跳板目录
mount /dev/sdb1 /new  ###首先挂载跳板目录
cp -R /home/*  /new  ###复制/home目录所有数据到/new先
rm -rf /home/*       ####可选,主要为了腾出空间给原来的硬盘
mount /dev/sdb1 /home ###挂载/home 到新硬盘,此时你会神奇的发现之前的/home目录文件已经全部转移过来了,也许你会有点疑问,我并没有复制或移动/new文件到新挂载的/home目录啊,其实此时的/home目录相当于/new目录的硬链接,可以测试下mkdir /new/test 你会发现/home目录也存在test
umount /new ###解除挂载,可能会出现占用无法删除,可以使用 umount -fl 强行卸载,
   -f 强制卸载
   -l 一空闲马上卸载所有占用的文件系统。

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:23 天前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐