将CentOS服务器的目录映射为Windows磁盘驱动器的方法

本文介绍如何使用Samba工具将CentOS服务器目录映射为Windows磁盘驱动器,便于远程管理。步骤包括安装Samba、创建账号、配置文件、设置密码、启动服务和在Windows上测试连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这篇文章主要介绍了将CentOS服务器的目录映射为Windows磁盘驱动器的方法,使用Samba这款工具,方便于对服务器进行远程管理,需要的朋友可以参考下

1、安装samba(centos 5.5):

   

复制代码

代码如下:

yum install samba system-config-samba samba-client samba-common

 

2、创建www账号

   

复制代码

代码如下:

/usr/sbin/useradd www
mkdir -p /data/www
chmod 777 /data/www
chown -R www:www /data/www
cat /etc/passwd | mksmbpasswd.sh> /etc/samba/smbpasswd

 

3、创建samba配置文件
 

复制代码

代码如下:

mv -f /etc/samba/smb.conf /etc/samba/smb.conf.bak
vi /etc/samba/smb.conf


如下:

 

   

复制代码

代码如下:

[global]
server string = Samba Server
security = user
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd
[web]
workgroup = www
netbios name = www
path = /data/www
browseable = yes
writeable = yes

 

4、为samba用户www设置一个密码:

   

复制代码

代码如下:

smbpasswd -a www

 

5、启动samba:

   

复制代码

代码如下:

/sbin/service smb start

 

6、在windows客户机测试

   

复制代码

代码如下:

\\192.168.8.32\web

 

在弹出的认证窗口中输入用户名www及密码(勾选记住我的密码)确定即可

7、将 samba 共享的 linux 目录,映射成 Windows 的一个驱动器盘符:
我的电脑右键-->映射网络驱动器-->选择一个没有使用的驱动器盘符,文件夹处输入\\192.168.8.32\web,勾选登录时重新连接(这样重新启动计算机以后,就自动连接了),接着回车-->输入用户名www及密码(勾选记住我的密码)确定就可以了

<think>我们正在解决CentOS系统因控制器变更(例如从SATA切换到RAID控制器)导致磁盘标识符改变(如/dev/sda变为/dev/md0)而引发的系统引导失败问题。关键点在于让系统能够识别新的磁盘标识符并正确引导。###解决方案概述1.**临时进入救援模式**:使用安装介质引导进入救援环境2.**修复磁盘标识符映射**:更新`/etc/fstab`和引导加载器配置3.**重建initramfs**:确保initramfs包含正确的磁盘驱动和识别模块4.**重新安装引导加载器**:更新GRUB到新的磁盘位置---###详细步骤####步骤1:进入救援环境1.使用CentOS安装USB/DVD启动,选择"Troubleshooting">"RescueaCentOSsystem"2.按照提示挂载原系统到`/mnt/sysimage`:```bashchroot/mnt/sysimage#进入原系统环境```####步骤2:更新磁盘标识符映射1.**确认新磁盘标识符**:```bashlsblk-f#查看当前磁盘分区和文件系统blkid#获取分区的UUID```2.**更新/etc/fstab**:-使用UUID替代设备路径(更稳定):```bashvim/etc/fstab```将`/dev/sda1`等改为`UUID=xxxx-xxxx-xxxx`格式(从`blkid`获取)**示例**:```#原内容/dev/sda1/bootxfsdefaults00#改为UUID=5d1f47e4-7a15-4a45-bb85-1b7e6abd0f8a/bootxfsdefaults00```####步骤3:修复引导加载器配置1.**重新生成GRUB配置**:```bash#对于BIOS系统grub2-mkconfig-o/boot/grub2/grub.cfg#对于UEFI系统grub2-mkconfig-o/boot/efi/EFI/centos/grub.cfg```2.**重装GRUB到新磁盘**:```bash#确认目标磁盘(例如现在磁盘为/dev/md0)#安装GRUB到磁盘的MBR(BIOS系统)grub2-install/dev/md0#UEFI系统需要挂载EFI分区并重装mount/dev/md0p1/boot/efi#假设md0p1是EFI分区grub2-install--target=x86_64-efi--efi-directory=/boot/efi--bootloader-id=centos```####步骤4:重建initramfs(关键!)```bash#确保包含新控制器所需驱动(如RAID驱动)dracut--force--add-drivers"megaraid_sasmpt3sas"#根据实际控制器型号调整#重建当前内核的initramfsdracut-f/boot/initramfs-$(uname-r).img$(uname-r)#可选:重建所有内核dracut--regenerate-all--force```####步骤5:验证并重启1.检查关键文件:```bashcat/boot/grub2/grub.cfg|grep'linux16'#确认root=参数正确lsinitrd/boot/initramfs-$(uname-r).img|grep'raid'#确认驱动已包含```2.退出chroot并重启:```bashexit#退出chrootreboot```---###故障排查-**启动卡在"dracut-initqueuetimeout"**:在GRUB启动菜单按`e`编辑,在`linux16`行尾添加:```rd.break=pre-mountrd.shell#进入紧急Shell```然后手动挂载并检查`/etc/fstab`和`/boot`内容。-**驱动未加载**:在dracut命令中明确添加驱动,如:```bashdracut--force--add-drivers"ahcimpt3sas"#SATA或SAS控制器驱动```-**UUID不匹配**:在救援环境中重新获取分区UUID并更新`/etc/fstab`和GRUB配置。---###预防措施1.**始终使用UUID**:在`/etc/fstab`和GRUB配置中使用UUID而非`/dev/sdX`路径2.**保留救援媒介**:备用CentOS安装USB3.**定期备份**:备份`/boot`和`/etc/fstab`等重要配置>通过以上步骤可解决99%的磁盘标识符变更导致的引导问题。如果涉及RAID/LVM重组,需额外配置mdadm/lvm配置文件。---§§相关问题§§1.如何永久修改CentOS系统的磁盘标识符策略(如使用by-uuid/by-label)?2.在救援模式下如何修复损坏的GRUB引导加载器?3.如何为自定义硬件控制器添加dracut驱动模块?4.CentOS7与CentOS8在引导故障修复中有哪些关键区别?</think>### 解决 CentOS 系统因控制器变更导致磁盘标识符改变引发的引导失效问题 当磁盘控制器变更(如 SATA → RAID 或 HBA 卡更换)导致磁盘标识符(如 `/dev/sda` → `/dev/md0`)改变时,系统引导配置失效的完整解决方案如下: --- #### 核心解决步骤 1. **进入紧急救援模式** ```bash # 从安装介质启动,选择"Troubleshooting" > "Rescue a CentOS system" chroot /mnt/sysimage # 进入原系统环境 ``` 2. **更新磁盘标识符映射** ```bash # 查看新磁盘标识符 lsblk -f blkid # 更新 /etc/fstab vim /etc/fstab # 将 /dev/sda1 等改为新标识符 (如 /dev/md0p1) 或使用 UUID ``` **示例**: ``` # 原配置 /dev/sda1 /boot xfs defaults 0 0 # 改为 UUID=5d1f47e4-7a15-4a45-bb85-1b7e6abd0f8a /boot xfs defaults 0 0 ``` 3. **重建 initramfs 包含新磁盘驱动** ```bash # 备份原 initramfs cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak # 强制重建 (添加新控制器驱动) dracut --force --add-drivers "megaraid_sas mpt3sas" # 根据控制器型号调整 ``` 4. **修复 GRUB 引导配置** ```bash # 重新安装 GRUB 到新磁盘 grub2-install /dev/md0 # 替换为新磁盘标识符 # 生成新 GRUB 配置 grub2-mkconfig -o /boot/grub2/grub.cfg ``` 5. **验证关键配置** ```bash # 检查 GRUB 中的 root 参数 grep "root=" /boot/grub2/grub.cfg # 检查 initramfs 是否包含驱动 lsinitrd /boot/initramfs-$(uname -r).img | grep 'megaraid' ``` --- #### 特殊场景处理 **场景 1:LVM 卷组无法激活** ```bash # 重新扫描卷组 vgchange -ay # 更新 initramfs 的 LVM 配置 dracut --force --add lvm ``` **场景 2:RAID 阵列未检测** ```bash # 重新组装阵列 mdadm --assemble --scan # 更新 mdadm 配置 mdadm --detail --scan > /etc/mdadm.conf dracut --force ``` **场景 3:UEFI 系统引导修复** ```bash # 挂载 EFI 分区 mount /dev/md0p1 /boot/efi # 替换为实际分区 # 重新安装 GRUB grub2-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=centos ``` --- #### 验证与测试 ```bash # 检查文件系统挂载 mount | grep ' / ' # 测试引导加载器 grub2-editenv list # 模拟启动 (使用kexec) kexec -l /boot/vmlinuz-$(uname -r) --initrd=/boot/initramfs-$(uname -r).img --reuse-cmdline kexec -e ``` > **关键预防措施**: > 1. 在 `/etc/fstab` 中**始终使用 UUID** 而非设备路径 > 2. 控制器变更前备份引导分区:`dd if=/dev/sda1 of=/boot-backup.img bs=4M` > 3. 定期更新 initramfs:`dracut --regenerate-all -f` --- #### 故障排查表 | 错误现象 | 解决方案 | |----------|----------| | `dracut: /dev/root does not exist` | 检查 GRUB 中的 `root=` 参数是否匹配新 UUID | | `/boot not found` | 在 initramfs 中添加 `xfs` 或 `ext4` 模块:`dracut -f --add-drivers xfs` | | LVM 卷组未激活 | 在 initramfs 中添加 lvm 模块:`dracut -f --add lvm` | | 无法挂载 rootfs | 在 GRUB 启动时按 `e` 添加 `rd.break` 进入调试 | > 完成修复后必须**更新 GRUB 配置**: > ```bash > grub2-mkconfig -o /boot/grub2/grub.cfg > ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值