一、简介
要实现将实时打包的镜像文件直接保存到Windows上,而不是先在RK3588设备上创建镜像然后再传输,你可以通过网络挂载Windows上的共享文件夹到RK3588设备上。这样你可以将镜像直接写入到Windows设备的存储中,而不占用RK3588设备的内存空间。
二、步骤1:在Windows上设置共享文件夹
-
创建共享文件夹
在Windows
上,右键点击你想要共享的文件夹(如D:\work\remote_img
),选择“属性
”。 -
设置共享
在属性
窗口中,选择“共享
”选项卡,然后点击“高级共享
”。- 勾选“共享此文件夹”,然后为共享指定一个名称(默认与文件夹名相同)
- 点击“
权限
”,确保“完全控制
”权限已赋予给适当的用户或“Everyone
”(视情况而定)。
-
确认共享路径
- 共享路径可能类似于
\\<Windows_IP>\share_name
,例如\\192.168.1.31\remote_img
。
- 共享路径可能类似于
三、在RK3588设备上安装必要的工具(根据实际需要安装)
-
在RK3588设备上安装 cifs-utils,这可以让你挂载Windows共享文件夹
sudo apt-get update sudo apt-get install cifs-utils
- 1
- 2
四、挂载Windows共享文件夹到RK设备
-
在RK设备上创建一个目录,用于挂载Windows共享文件夹
sudo mkdir /mnt/remote_img
- 1
-
将Windows共享文件夹挂载到RK设备上
sudo mount -t cifs -o username=your_windows_user_name,password=your_password //192.168.5.34/remote_img /mnt/remote_img
- 1
-
username=your_windows_user_name
和password=your_password
是你在Windows设备上使用的用户名和密码。 -
//192.168.5.34/remote_img
是共享文件夹的网络路径。 -
/mnt/remote_img
是rk设备上挂载点目录。
-
检查是否挂载成功
df -h
- 1
挂载成功后,你应该能够看到挂载点
/mnt/remote_img
,它对应于Windows设备上的共享文件夹。
五、将镜像实时文件保存到Windows
sudo dd if=/dev/mmcblk0 bs=4M | tee /mnt/remote_img/backup_image_v2043.img | dd of=/dev/null
- 1
-
tee
命令用于将数据流复制到文件的同时继续传输,因此数据不仅被保存到镜像文件中,也被实时处理。 -
/mnt/remote_img/backup_image_v2043.img
是Windows共享文件夹的路径。 -
dd of=/dev/null
:将数据流同时传递,但不做额外处理。
六、自动挂载(可选)
- 如果你想让挂载点在设备重启后自动挂载,可以编辑
/etc/fstab
文件:sudo vim /etc/fstab
- 1
- 在文件末尾添加以下内容:
//192.168.1.31/remote_img /mnt/remote_img cifs username=your_windows_user_name,password=your_password,iocharset=utf8,vers=3.0 0 0
- 1
七、遇到权限问题
“Permission denied
”等错误,表明当前用户或进程在写入到挂载的共享文件夹时没有足够的权限。
解决步骤:
-
1、卸载现有挂载
sudo umount /mnt/remote_img
- 1
-
2、使用带有权限设置的 mount 命令重新挂载
sudo mount -t cifs -o username=your_windows_username,password=your_password,uid=1000,gid=1000,file_mode=0777,dir_mode=0777 //192.168.1.31/remote_img /mnt/remote_img
- 1
- username=
your_windows_username
和 password=your_password
:替换为你在Windows上的用户名和密码。 -
uid=1000,gid=1000
:将挂载的文件的所有权设置为当前用户(通常 1000 是第一个创建的用户的UID)。 -
file_mode=0777,dir_mode=0777
:设置文件和目录的权限为可读写执行。