前言

手机换了iphone13,没想到和电脑之间的文件共享却成了棘手的问题。
数据连接线、微信、iTool、爱思助手都试过,总觉得欠点儿火候,操作方式繁琐还Low。
使用树莓派,很简单就搭起了一套PC和手机之间的文件共享系统,这里做简单介绍。

资源准备

树莓派5设备1台
机械硬盘1T

材料说明

手里有1块从PC主机拆卸的HDD机械硬盘,上面还保留原始的windows分区(“c:”系统盘,安装windows10)。
从网上买了一块机械硬盘读取设备,插上电源,连接到树莓派(点击看大图)。

format windows hdd disk.

接着开始操作磁盘。

1
fdisk -l

MBR分区与GPT分区

传统的MBR分区表格式,仅支持最大四个主分区,而且不可以格式化2TB以上的磁盘,因此,大磁盘更适合使用parted工具进行GPT的分区格式。

parted分区工具

parted用于对磁盘(或RAID磁盘)进行分区及管理,与fdisk分区工具相比,支持2TB以上的磁盘分区,并且允许调整分区的大小。
parted是一个用于硬盘分区或调整分区大小的工具。使用它你可以创建、清除、调整、移动和复制ext2、ext3、linux-swap、FAT、FAT32和reiserfs分区;也能创建、调整和移动苹果系统的HFS分区;还能检测jfs、ntfs、ufs和xfs分区。该工具常用于为新安装的操作系统创建空间,重新分配硬盘使用情况,在将数据拷贝到新硬盘的时候也常常使用。

https://www.cnblogs.com/lvzhenjiang/p/14391479.html

Step 1 磁盘分区操作

因为parted命令只能针对gpt格式的磁盘进行操作,所以这里必须将新建的磁盘标签格式设为gpt。

1
2
3
4
5
# 命令行中一次输入如下命令:
partned /dev/sda
mklabel gpt
yes
print

(图片点击放大)
format windows hdd disk.

发现disklable的值为dos, 明显需要进行格式转换,并重新分区。
执行命令:

1
2
3
4
5
6
7
parted /dev/sda
....
mkpart
start? 1
end ? -1
print
q

按照截图一步一步操作。
parted tool

最后使用mkfs设置ext4文件系统格式。
mkfs.ext4

Step 2 磁盘挂载
1
2
3
4
5
6
7
8
9
# root用户操作
# 创建挂载目录
mkdir /hdd

# 挂载操作
mount /dev/sda /hdd

# 写入分区表,避免重启丢失。
echo '/dev/sda /hdd ext4 defaults 0 0 ' >> /etc/fstab

安装smb服务

安装软件
1
sudo apt install samba samba-common-bin
配置smb共享目录和用户
1
2
3
4
5
6
7
8
9
10
11
12
[share]
comment = Shared Folder with username and password
path = /hdd/cloudfiles/samba/wise
public = yes
writable = yes
valid users = wise
create mask = 777
directory mask = 777
force user = wise
force group = wise
available = yes
browseable = yes
设置密码
1
sudo smbpasswd -a wise
查看服务
1
2
3
4
5
6
7
8
9
10
11
12
13
14
sudo systemctl status samba

○ samba-ad-dc.service - Samba AD Daemon
Loaded: loaded (/usr/lib/systemd/system/samba-ad-dc.service; enabled; preset: enabled)
Active: inactive (dead) (Result: exec-condition) since Wed 2024-06-05 23:06:13 CST; 3 days ago
Condition: start condition unmet at Wed 2024-06-05 23:06:13 CST; 3 days ago
Docs: man:samba(8)
man:samba(7)
man:smb.conf(5)
CPU: 32ms

Jun 05 23:06:13 wise-desktop systemd[1]: Starting samba-ad-dc.service - Samba AD Daemon...
Jun 05 23:06:13 wise-desktop systemd[1]: samba-ad-dc.service: Skipped due to 'exec-condition'.
Jun 05 23:06:13 wise-desktop systemd[1]: Condition check resulted in samba-ad-dc.service - Samba AD Daemon being skipped.

请注意,以上有迷惑性,正确的查看smb服务的命令如下,只要smb服务启动就OK.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
systemctl status smb

● smbd.service - Samba SMB Daemon
Loaded: loaded (/usr/lib/systemd/system/smbd.service; enabled; preset: enabled)
Active: active (running) since Thu 2024-06-06 00:06:58 CST; 3 days ago
Docs: man:smbd(8)
man:samba(7)
man:smb.conf(5)
Main PID: 379971 (smbd)
Status: "smbd: ready to serve connections..."
Tasks: 5 (limit: 4334)
Memory: 523.9M (peak: 1.5G)
CPU: 5min 12.268s
CGroup: /system.slice/smbd.service
├─379971 /usr/sbin/smbd --foreground --no-process-group
├─379974 "smbd: notifyd" .
├─379975 "smbd: cleanupd "
├─787550 "smbd: scavenger"
└─787551 "smbd: client [192.168.0.136]"

Jun 09 10:13:59 wise-desktop smbd[749651]: pam_unix(samba:session): session opened for user wise(uid=1002) by (uid=0)
Jun 09 15:21:35 wise-desktop smbd[749651]: pam_unix(samba:session): session closed for user wise
Jun 09 17:51:34 wise-desktop smbd[707285]: pam_unix(samba:session): session closed for user wise
Jun 09 18:07:20 wise-desktop smbd[787474]: pam_unix(samba:session): session opened for user wise(uid=1002) by (uid=0)
Jun 09 18:08:59 wise-desktop smbd[787474]: pam_unix(samba:session): session closed for user wise
Jun 09 18:09:03 wise-desktop smbd[787551]: pam_unix(samba:session): session opened for user wise(uid=1002) by (uid=0)
Jun 09 18:29:26 wise-desktop smbd[789586]: pam_unix(samba:session): session opened for user wise(uid=1002) by (uid=0)
Jun 09 18:29:27 wise-desktop smbd[789586]: pam_unix(samba:session): session closed for user wise
Jun 09 18:29:29 wise-desktop smbd[789602]: pam_unix(samba:session): session opened for user wise(uid=1002) by (uid=0)
Jun 09 18:43:23 wise-desktop smbd[789602]: pam_unix(samba:session): session closed for user wise

Windows访问samba服务

“Win + R”, 局域网访问。

parted tool

iphone安装ES文件浏览器
install ES File Manager.

新建smb服务,输入登录信息。
create samba service and input login information.

点击保存后,登陆成功。
login samba service and save account.

创建目录,选择图片上传导入。
uplod image from mobile according samba.

以上,通过在树莓派搭建samba服务,实现PC、树莓派和手机之间的文件共享,再也不用数据线和微信了~