1.前言

家里有一台很旧的玩客云,用于迅雷下载,但是玩客云只支持插移动硬盘,很不方便,刚好家里也有一台群晖的NAS,磁盘空间有3T,那可不可以分出一些空间让玩客云作为移动硬盘使用呢,接着就有了这套方案。

2.方案设计

首先需要将群晖里的磁盘空间分出一部份,用的是iSCSI,简单来说就是将一部份的磁盘空间虚拟成物理磁盘。这种跟smb有很大不同,这种虚拟出来的网络磁盘和本地磁盘基本一样的。

然后就是虚拟U盘,我这里用的是开发板Orange Pi 3 LTS,开发板需要有连接网络的功能,并且支持USB OTG,利用OTG可以虚拟出U盘。

整体流程就是通过开发板连上群晖的网络磁盘,然后再利用开发板的OTG功能将开发板虚拟成U盘。

3.实现

3.1在群晖NAS里创建ISCSI服务

群晖里打开ISCSI套件。

点击Target->新增

点击下一步

点击下一步

设置想分出来的磁盘空间,这里我只分了100GB的空间出来用作测试,接着点击下一步。

最后点击应用,就可以完成ISCSI的设置了。

3.2开发板Orange Pi 3 LTS设置

开发板我刷的是Ubuntu4.9的系统server版,版本号是Orangepi3-lts_2.1.6_ubuntu_focal_server_linux4.9.118.img,大家也可以通过官方网站下载这个版本写入到开发板上面。

官方网站http://www.orangepi.cn/downloadresourcescn/,官网有用户手册教大家如何刷ubuntu系统到开发板上。这里我就不多说了。

刷好系统后连接上网线用root帐号登陆到开发板上面。

3.2.1安装ISCSI的客户端

apt-get update
apt-get install open-iscsi

3.2.2启动ISCSI服务

iscsiadm -m discovery -t st -p SERVER-IP

上面的SERVER-IP是你的群晖IP地址。

输入上面命令之后就卡住不动了,强行结束后看了一下日志。如下所示:

网上查了一下原因,是因为open-iscsi需要用到scsi_transport_iscsi.ko, libiscsi.ko and iscsi_tcp.ko这三个Linux核心块,但是当前系统打包的时候没有把这三个核心加入到系统里面,导致出错了。然后根据它的用户手册,下载Linux源码重新编译,加上ISCSI的驱动,这三个ko文件就可以找到了,为了方便大家,我把自己编译好的Linux内核上传到这里,大家用以下步骤进行安装即可。Linux内核下载地址OrangePi3LTS内核-Ubuntu文档类资源-CSDN下载

1.先把下载好的核心包上传到开发板上面,卸载已经安装好的linux内核包

apt purge -y linux-image-legacy-sun50iw6

2.安装新的内核包

dpkg -i linux-image-legacy-sun50iw6_2.2.2_arm64.deb

3.重启开发板

reboot

重启开发板之后再次执行以下命令,就可以看到在群晖里配置的虚拟磁盘了。

iscsiadm -m discovery -t st -p SERVER-IP

3.2.3连接到群晖的ISCSI服务

iscsiadm -m node --targetname "TARGET-NAME" --portal "SERVER-IP:3260" --login

TARGET-NAME是上面那个iqn开头的那一长串英文,SERVER-IP是群晖的IP地址,端口默认是3260。

连接成功后,查看一下新的磁盘设备,并且记录下生成的设备名称。

fdisk -l

这里可以看到这个100GB的磁盘设备,设备名称为/dev/sda。

3.2.4设置开发板为USB盘模式

根据官方文档 Sina Visitor System ,先设置otg为u盘模式。

cat /sys/devices/platform/soc/usbc0/usb_device

然后加载 g_mass_storage 内核模块,使用/dev/sda虚拟成U盘

modprobe g_mass_storage file=/dev/sda stall=0 removable=1

3.3测试U盘功能

运行完上面的命令后,在不断电的情况下将USB口插入到win10进行测试。这个开发板有三个usb口,需要知道USB OTG口是哪一个。用户手册里有说明哪个USB口是支持OTG的,如下图所示,是右边那个单独的USB口。

用公对公的USB线连接上面那个USB2.0 OTG接口,另外一端连接win10电脑的USB接口,此时电脑可以正确识别出U盘,然后把U盘格式化为fat32,然后就可以正常使用了。

3.4将开发板连上玩客云

拔掉win10电脑的USB端,插入到玩客云的USB接口里。此时玩客云并没有正确识别出移动硬盘,看了一下玩客云说明是支持ntfs的,然后在插回win10电脑,把开发板虚拟出来的U盘格式化为ntfs格式。重新插回玩客云就可以正常识别了。

测试了一下下载速度,100M带宽。

4.后记

1.上面的过程有个问题,就是只要开发板断电了,所有的命令都得重复运行一次,建设可以做一个开机启动脚本,自动运行,因为需要取得网络连接才能够正常运行,可以在脚本中加上延迟1分钟才执行,保证网络已经连通。

2.iSCSI技术并不是群晖独有的功能,像威联通或者其它NAS很多都支持这种服务。

3.开发板只需要支持网络连接和USB-OTG都可以实现这个功能。例如树莓派(Raspberry Pi 4)的开发板也可以实现这个功能。

4.关于传输速度的问题,是根据网络速度和USB的传输速度来定的。例如这次的开发板只支持USB 2.0的OTG,所以限制了他的传输速度。像树莓派(Raspberry Pi 4)这种是USB3.0的OTG,千兆网口,速度可以提高好多倍。

5.将虚拟U盘连接到玩客云只是其中一种玩法,应该还有很多种玩法,例如将他给ps4作为移动硬盘,把游戏安装在这个虚拟U盘里,这样就可以把NAS多余的空间利用起来。大家如果有什么其它好的玩法记得在评论里说一下哦。

基于NAS磁盘空间作为U盘解决方案相关推荐

  1. Ubuntu中文件系统根目录上的磁盘空间不足的详细解决方案

    目录:Ubuntu中文件系统根目录上的磁盘空间不足的详细解决方案 一.问题提出 二.解决问题 2.1 安装gparted管理器 2.2 打开 2.3 右键点击分区,选择调整大小/移动 一.问题提出 在 ...

  2. 基于nas的filerun私有网盘搭建(拒绝可道云)

    现有的云存储服务中,无论是百度网盘还是微云,不限速这个词只跟会员有关,对于不常下载的用户来说,充会员反倒有点奢靡,廉洁之风的同学可以买个共享号临时用一下. 但如果你对"白嫖"这个词 ...

  3. mysql空间不足_磁盘空间不足的临时解决方案

    一.通过软连接的方式迁移部分表空间到其他硬盘 优点:对数据没有任何影响,反而可以适当增加IO能力,使用多个磁盘的IOPS 缺点:需要停机 处理步骤: 1.关掉mysql实例 2.cp big.ibd ...

  4. 台式电脑计算机硬盘清理,电脑怎么清理磁盘空间,台式电脑c盘怎么清理

    无论我们给C盘分多大的分区,Windows都有办法把它填满.像休眠文件.系统页面文件这都是动辄GB级的,还有系统还原文件.虚拟内存.安装软件时临时下载存放位置,都在C盘上. 随着SSD的流行,如今很多 ...

  5. 【错误记录】VMware 虚拟机报错 ( 向 VMWare 虚拟机中的 Ubuntu 系统拷贝文件时磁盘空间不足 )

    文章目录 一.报错信息 二.解决方案 一.报错信息 磁盘空间不足 二.解决方案 关闭虚拟机 , 在虚拟机关闭状态下 , 显示如下界面 , 点击 " 编辑虚拟机设置 " 选项 , 选 ...

  6. linux 查看磁盘空间_Linux下删点日志也能搞死人

    想了十天十夜不知道写些什么,那就写写面试题吧. == 1 == 在面试应聘者的时候,我常常会问: 在 Linux 下,如何删除一个目录下的所有 log 文件? 不知道是不是我人畜无害的围笑给了应聘者我 ...

  7. 计算机硬盘内存不足,电脑提示磁盘空间不足怎么办

    使用电脑偶尔会遇到"磁盘空间不足"的提示,导致我们无法继续安装或运行程序,那么电脑提示磁盘空间不足怎么办呢?接下来大家跟着学习啦小编一起来了解一下电脑提示磁盘空间不足的解决方法吧. ...

  8. 计算机硬盘空间不足,磁盘空间不足,小编教你电脑磁盘空间不足如何解决

    在享受方便的同时是否也导致电脑变卡,系统或者程序崩溃,严重的还会导致那些重要的文件丢失,你是否经常遇到这种情况呢?也许你是新手,当遇到这种情况,会手足无措吗?下面,小编给大家带来了电脑磁盘空间不足的解 ...

  9. 磁盘空间不足怎么办,如何处理分配磁盘的空间?

    许多用户可能遇到这个问题,当您打开"我的电脑 - 资源管理器"时,在Vista或Windows7/8环境下,驱动器C显示一个红条(磁盘空间不足),而驱动器F显示一个蓝色的吧,就像以 ...

最新文章

  1. java.io.IOException: No FileSystem for scheme: hdfs
  2. WPF Wonders: Transformations (and Robots!)
  3. Amazon EMR(Elastic MapReduce):亚马逊Hadoop托管服务运行架构Hadoop云服务之战:微软vs.亚马逊...
  4. 使用 Windbg 分析一个 异步操作 引发的 Crash 异常
  5. SwitchHosts提示切换hosts失败!没有修改'C:\WINDOWS\system32\drivers\etc\hosts'的权限问题
  6. 利用Maven快速创建一个简单的spring boot 实例
  7. AAAI-19录用论文清单
  8. elasticsarch6.5.4安装插件 searchguard和elasticsearh-head插件安全性问题
  9. redis连接被拒绝
  10. gtk学习总结:GTK从入门到放弃,三天包教包会
  11. 前端了解的简要php
  12. 程序猿学习中华古诗词路径
  13. Python的一个小程序题
  14. 人民币小写转大写金额(可达千百万亿)
  15. 贷款买房怎么做才划算?贷款买房注意事项
  16. 我的世界java边境之地_我的世界边境之地是什么 我的世界边境之地介绍
  17. 如何在 Python 中将 Excel 文件转换为图像?Aspose快速搞定
  18. SAP的SYSTEM的函数列表和代码示例
  19. seo是什么意思?干什么的啊?
  20. 互联网常用词汇索引表

热门文章

  1. Python贪吃蛇小游戏教程
  2. Ansys2022安装后打开workbench工具箱只有speo
  3. 解决intel九代处理器黑苹果明明已经开启核显加速仍然出现各种问题
  4. matlab一维搜索方法程序,matlab一维搜索法
  5. 电子科技大学18春《工厂供电》在线作业3
  6. 【Java SE】猜数字游戏
  7. 【六袆 -Windows】windows11、windows10跳过创建用户;windows10跳过创建用户直接用Administrator身份登录;直接用Administrator身份登录
  8. 02-Spring WebFlux Flux和Mono构建响应式数据流
  9. 坎公骑冠剑普系角色德魯伊坎納属性、专武曝光
  10. 扩容刚烧录至sd卡的linux系统