ubuntu挂载sd卡到分区目录+修改docker镜像存储位置

ubuntu挂载sd卡到分区目录+修改docker镜像存储位置

一、 挂载SD卡到/data

1、查看Linux硬盘信息
lsblk 或 fdisk -l

lsblk

请添加图片描述
新的硬盘,最好删除之前的分区,再新建分区/dev/sda1
删除分区:(都选择默认)
fdisk /dev/sda
输入:d

磁盘新建分区(假如/dev/sda是要挂载的硬盘):
$ sudo fdisk /dev/sda

输入m可查看命令帮助[可选操作]
输入n,新增分区,分区类型可选:p primary; l logic
输入p,分区号选择3或4,1和2系统已占用
输入起始扇区和结束扇区,一般默认即可。特殊情况下,需根据已有分区扇区使用情况确定。如上图中三个分区,那么起始扇区可以设置在 /dev/sda2结束分区之后,
/dev/sda2 结束扇区为 41940991,那么新分区的起始扇区需要比它大,如:41940995. 结束扇区默认即可
输入w,保存修改
$ sudo partprobe # 使分区生效
$ sudo fdisk -l # 查看刚才新建的分区

2、可以安装hdparm 测试一下磁盘的读写速率(可选)

apt-get install hdparm
hdparm -cdt /dev/sda1

3、格式化新硬盘(很危险,注意操作时确定硬盘分区的位置),ext4格式
(不格式化后续可能出问题,比如docker迁移到硬盘里面,运行不了)

mkfs.ext4  /dev/sda1

请添加图片描述
4、创建/data目录(/data目录为硬盘将挂载的地方)
创建一个目录,比如/data

mkdir /data

5、挂载分区

mount /dev/sda1 /data

df -h或mount命令查看:

df -h

请添加图片描述

mount查看详细挂载情况,ext4格式:

mount

请添加图片描述

6、lsattr查看挂载文件夹的可操作属性(大致就可以)

lsattr

在这里插入图片描述

7、搞个所有用户可操作,防止其它用户存不了文件

chmod -R +777 /data/

8、配置开机自动挂载

方法1:(建议不要使用,修改/etc/fstab的方式,配置不正确可能会导致系统无法正常启动,也就是说如果没有硬盘的话,硬盘拔掉的话,会导致开机启动系统起不来
mount命令会在重启服务器后失效,所以要将分区信息写到/etc/fstab文件中让它永久挂载

$ vi /etc/fstab         # 编辑 fstab 文件
# 在文件中加入下面代码
/dev/sda1               /data                   ext4     defaults        0 1

/etc/fstab文件的每一行都遵循以下格式:
在这里插入图片描述

修改/etc/fstab文件后,运行:

mount -a

方法2:(在启动脚本中挂载,推荐使用)
也可以通过开机启动脚本的方式配置开机自动挂载:
脚本示例:
vi /etc/rc.local

#!/bin/bash
#先停止docker服务
docker stop $(docker ps -aq)
systemctl stop docker.service
sleep 1

#再挂载硬盘到目录下
[ -e /dev/sda1 -a -e /data ] && mount /dev/sda1 /data

#最后再重启docker
sync && systemctl daemon-reload && systemctl restart docker

9、后续故障处理
后期发现挂载的磁盘变为只读,Read-only file system
请添加图片描述

这种情况通常都是由于系统发现磁盘硬件故障或文件系统中文件被损坏之后而采取的保护机制导致的。为了保护数据不破坏分区中已有内容,
Linux在挂载文件系统时就只用read-only只读方式加载了。**造成这个问题的原因大多数是因为非正常关机后导致文件系统受损引起的**,
在系统重启之后,受损分区就会被Linux自动挂载为只读。解决的方法是通过fsck来修复文件系统,然后重启即可。

先卸载挂载的目录:

umount /data

ext4文件系统分区,修复文件操作案例:

fsck -f /dev/sda1

修复好之后,重新挂载:

mount /dev/sda1 /data

二、修改docker镜像存储路径

docker安装之后默认的服务数据存放根路径为/var/lib/docker目录下,
var目录默认使用的是根分区的磁盘空间;所以这是非常危险的事情;
随着我们镜像、启动的容器实例开始增多的时候,磁盘所消耗的空间也会越来越大,
所以我们必须要做数据迁移和修改docker服务的默认存储位置路径;
有多种方式是可以修改docker默认存储目录路径的,但是最好是在docker安装完成后,
第一时间便修改docker的默认存储位置路径为其他磁盘空间较大的目录(一般企业中为/data目录),规避迁移数据过程中所造成的风险。

1、创建docker容器存放的路径

mkdir  /data/docker

2、停止Docker服务并迁移数据到新目录

 docker stop $(docker ps -aq)
systemctl stop docker.service
rsync -avz /var/lib/docker/   /data/docker/

3、修改Docker配置文件
方法1:-----------------------------------------------------------------------------

mkdir -p /etc/systemd/system/docker.service.d/ 

编辑文件:
vim /etc/systemd/system/docker.service.d/devicemapper.conf
添加如下内容:

[Service]
ExecStart=
ExecStart=/usr/bin/dockerd  --graph=/data/docker/

方法2:----------------------------------------------------------------------------------------

sudo vim /etc/docker/daemon.json #没有就创建
#在json串中添加内容如下
"data-root": "/data/docker",

请添加图片描述

4、重启Docker服务

systemctl daemon-reload 
systemctl restart docker

5、查看现在容器存放的目录

docker info | grep "Dir"

会显示:
Docker Root Dir: /data/docker

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

勤劳的搬运工zyh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值