郑州鼎益 郑州鼎益 DINGYI INFO
基础使用2026-08-26约 12 分钟郑州鼎益技术团队 整理

Linux 挂载群晖 iSCSI LUN:CHAP 认证、格式化与开机自启

open-iscsi 发现 Target、把 Initiator Name 加进 DSM、配置 CHAP、分区格式化 ext4 并写 fstab;末尾附卸载流程与常见故障对照。

iSCSICHAPLUNopen-iscsi

从零开始,完整配置 CHAP 认证、格式化、挂载、开机自启

一、最终成功配置

NAS 地址192.168.1.10
Target IQNiqn.2000-01.com.synology:nas.Target-1
Initiator Nameiqn.1993-08.org.debian:01:client
CHAP 用户名nasadmin
CHAP 密码<你的密码>
挂载点/mnt/iscsi_data
磁盘设备/dev/sdc (10G)
文件系统ext4
UUIDYOUR-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)

排查步骤:

  1. 确认 Initiator Name 已添加到 NAS 的 iSCSI Initiator 列表
  2. 确认 CHAP 用户名/密码与 NAS 设置完全一致
  3. 检查 /etc/iscsi/iscsid.conf 中 authmethod = CHAP 未被注释
  4. 用调试模式查看详细握手过程:
bashsudo iscsiadm -m discovery -t sendtargets -p 192.168.1.10 -d 8

问题3:登录后看不到磁盘

排查:

  1. 检查 NAS 上 LUN 是否已映射到 Target(LUN Mapping 标签页)
  2. 手动扫描 SCSI 总线:
bashfor host in /sys/class/scsi_host/host*/scan; do
    echo "- - -" > "$host" 2>/dev/null || true
done
sleep 3
lsblk

六、Synology NAS 端配置要点

  1. 存储管理器 → iSCSI Target
  2. 创建 Target,名称自定义(如 Target-1)
  3. 在 iSCSI Initiator 标签页中添加 Linux 的 Initiator Name
  4. 启用 CHAP,设置用户名和密码
  5. 创建 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

照着做还是没跑通?

把 NAS 型号、报错截图和现有网络拓扑发我们,郑州本地工程师可远程协助或上门部署。

免费咨询 →
← SMB/CIFS 挂载速查:各 Linux 发行版安装命令与挂载报错对照全部文档用 Synology ABB 备份与还原 Linux 主机:从依赖检查到整机恢复 →