Linux 挂载群晖 iSCSI LUN:CHAP 认证、格式化与开机自启
open-iscsi 发现 Target、把 Initiator Name 加进 DSM、配置 CHAP、分区格式化 ext4 并写 fstab;末尾附卸载流程与常见故障对照。
从零开始,完整配置 CHAP 认证、格式化、挂载、开机自启
一、最终成功配置
| NAS 地址 | 192.168.1.10 |
|---|---|
| Target IQN | iqn.2000-01.com.synology:nas.Target-1 |
| Initiator Name | iqn.1993-08.org.debian:01:client |
| CHAP 用户名 | nasadmin |
| CHAP 密码 | <你的密码> |
| 挂载点 | /mnt/iscsi_data |
| 磁盘设备 | /dev/sdc (10G) |
| 文件系统 | ext4 |
| UUID | YOUR-DISK-UUID |
二、前置条件
- Linux 系统已安装
open-iscsi包 - 网络可达 NAS(
ping 192.168.1.10通) - NAS 端已创建 iSCSI Target 和 LUN
- 已获取 NAS 管理员权限
安装 iSCSI 工具:
sudo apt install open-iscsi(Debian/Ubuntu)三、完整操作步骤
启动 iSCSI 服务
bashsudo systemctl start iscsid
sudo systemctl enable iscsid查看 Initiator Name
bashcat /etc/iscsi/initiatorname.iscsi输出类似:
InitiatorName=iqn.1993-08.org.debian:01:client必须将此 Initiator Name 添加到 Synology DSM → 存储管理器 → iSCSI Target → iSCSI Initiator 列表中!
配置 CHAP 认证
编辑 /etc/iscsi/iscsid.conf,确保以下配置未被注释(去掉行首的 #):
ininode.startup = automatic
node.session.auth.authmethod = CHAP
node.session.auth.username = nasadmin
node.session.auth.password = <你的密码>
discovery.sendtargets.auth.authmethod = CHAP
discovery.sendtargets.auth.username = nasadmin
discovery.sendtargets.auth.password = <你的密码>这是最常见的坑!
authmethod = CHAP 默认被注释,必须手动取消注释才能启用 CHAP 认证。修改后重启服务:
bashsudo systemctl restart iscsid创建节点并登录
bash# 创建节点记录
sudo iscsiadm -m node -T iqn.2000-01.com.synology:nas.Target-1 \
-p 192.168.1.10 -o new
# 配置 CHAP 认证
sudo iscsiadm -m node -T iqn.2000-01.com.synology:nas.Target-1 \
-p 192.168.1.10 -o update -n node.session.auth.authmethod -v CHAP
sudo iscsiadm -m node -T iqn.2000-01.com.synology:nas.Target-1 \
-p 192.168.1.10 -o update -n node.session.auth.username -v nasadmin
sudo iscsiadm -m node -T iqn.2000-01.com.synology:nas.Target-1 \
-p 192.168.1.10 -o update -n node.session.auth.password -v '<你的密码>'
# 登录
sudo iscsiadm -m node -T iqn.2000-01.com.synology:nas.Target-1 \
-p 192.168.1.10 --login格式化磁盘(首次使用时)
这会格式化磁盘,请确认磁盘上没有重要数据!
bashsudo mkfs.ext4 /dev/sdc挂载磁盘
bashsudo mkdir -p /mnt/iscsi_data
sudo mount /dev/sdc /mnt/iscsi_data设置开机自动挂载
bash# 获取 UUID
sudo blkid /dev/sdc
# 写入 fstab(开机自动挂载)
echo 'UUID=YOUR-DISK-UUID /mnt/iscsi_data ext4 _netdev 0 0' \
| sudo tee -a /etc/fstab
# 设置 iSCSI 自动登录
sudo iscsiadm -m node \
-T iqn.2000-01.com.synology:nas.Target-1 \
-p 192.168.1.10 -o update -n node.startup -v automatic_netdev 参数确保在网络就绪后才挂载,避免启动时挂载失败。四、验证结果
bash# 检查 iSCSI 会话
sudo iscsiadm -m session
# 输出: tcp: [1] 192.168.1.10:3260,1 iqn.2000-01.com.synology:nas.Target-1
# 检查磁盘
lsblk /dev/sdc
# 输出: sdc 8:32 0 10G 0 disk /mnt/iscsi_data
# 检查挂载
df -h /mnt/iscsi_data
# 输出: /dev/sdc 9.8G 2.1M 9.3G 1% /mnt/iscsi_data
# 写入测试
echo "iSCSI mount test - $(date)" > /mnt/iscsi_data/test.txt
cat /mnt/iscsi_data/test.txt以上全部通过即表示 iSCSI 挂载成功!
五、故障排查
问题1:僵尸会话无法清除
现象:多次登录失败后,iscsiadm -m session 显示残留会话,无法删除。
原因:iSCSI 会话是内核级的,kill 无法杀死。
以下方法全部无效:
bashkill -9 <pid> # 只杀用户进程,内核会话不受影响
modprobe -r iscsi_tcp # 模块被占用,无法卸载
rm -rf /var/lib/iscsi/* # 内核会话不读文件系统唯一解决办法:重启系统
bashsudo reboot问题2:CHAP 认证失败(status 0201)
排查步骤:
- 确认 Initiator Name 已添加到 NAS 的 iSCSI Initiator 列表
- 确认 CHAP 用户名/密码与 NAS 设置完全一致
- 检查
/etc/iscsi/iscsid.conf中authmethod = CHAP未被注释 - 用调试模式查看详细握手过程:
bashsudo iscsiadm -m discovery -t sendtargets -p 192.168.1.10 -d 8问题3:登录后看不到磁盘
排查:
- 检查 NAS 上 LUN 是否已映射到 Target(LUN Mapping 标签页)
- 手动扫描 SCSI 总线:
bashfor host in /sys/class/scsi_host/host*/scan; do
echo "- - -" > "$host" 2>/dev/null || true
done
sleep 3
lsblk六、Synology NAS 端配置要点
- 存储管理器 → iSCSI Target
- 创建 Target,名称自定义(如
Target-1) - 在 iSCSI Initiator 标签页中添加 Linux 的 Initiator Name
- 启用 CHAP,设置用户名和密码
- 创建 LUN(10G),并在 LUN Mapping 标签页中映射到 Target
LUN Mapping 是最容易遗漏的步骤!创建了 LUN 和 Target 不代表它们自动关联,必须手动映射。
七、卸载 iSCSI 磁盘
卸载文件系统
bashsudo umount /mnt/iscsi_data如果提示 "target is busy",说明有程序正在使用该磁盘。先关闭相关程序,或用
sudo umount -l /mnt/iscsi_data 懒卸载。登出 iSCSI 会话
bash# 查看当前会话
sudo iscsiadm -m session
# 登出(用实际的 IQN 替换)
sudo iscsiadm -m node -T iqn.2000-01.com.synology:nas.Target-1 \
-p 192.168.1.10 --logout验证磁盘已消失
bash# 确认会话已断开
sudo iscsiadm -m session
# 确认磁盘已消失
lsblk /dev/sdc
# 应输出: lsblk: /dev/sdc: not a block device(可选)删除节点记录
如果要完全清除 iSCSI 配置:
bash# 删除节点记录
sudo iscsiadm -m node -T iqn.2000-01.com.synology:nas.Target-1 \
-p 192.168.1.10 -o delete
# 删除 fstab 中的挂载条目(编辑 /etc/fstab 移除对应行)
sudo vim /etc/fstab如果不删除节点记录,下次登录时不需要重新创建节点,直接
--login 即可。卸载完成后,磁盘可以安全地在另一台机器上挂载。NAS 端的 Target 和 LUN 配置不需要修改。
附:常用 iSCSI 管理命令
| 查看会话 | sudo iscsiadm -m session |
|---|---|
| 查看节点 | sudo iscsiadm -m node |
| 发现目标 | sudo iscsiadm -m discovery -t sendtargets -p 192.168.1.10 |
| 登录 | sudo iscsiadm -m node -T <IQN> -p <IP> --login |
| 登出 | sudo iscsiadm -m node -T <IQN> -p <IP> --logout |
| 查看详细信息 | sudo iscsiadm -m session -P 3 |
| 调试模式 | sudo iscsiadm -m discovery -t sendtargets -p <IP> -d 8 |
Linux iSCSI 挂载教程 | 生成于 2026-09-15
本文整理自郑州鼎益技术资料《iscsi_mount_tutorial》,公开发布前已做脱敏与校订 · 最后校订 2026-11-11