ubuntu 挂载 windows 分区

本文详细介绍Linux环境下使用fdisk命令查看分区、命名方法,以及如何手动及自动挂载Windows XP分区,包括配置fstab文件实现系统启动时自动挂载。

一、fdisk 命令

fdisk是Linux下的一个分区工具,一般用来查看分区。fdisk -l就是查看所有分区的详细信息

root@ubuntu:/# fdisk -l


Disk /dev/sda: 500.1 GB, 500107862016 bytes

255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x7900f745


   Device Boot      Start         End      Blocks   Id  System

/dev/sda1            2048     2459647     1228800    7  HPFS/NTFS/exFAT

/dev/sda2   *     2459712   117386954    57463621+   7  HPFS/NTFS/exFAT

/dev/sda3       117386955   956285189   419449117+   5  Extended

/dev/sda4       956285190   976768064    10241437+   7  HPFS/NTFS/exFAT

/dev/sda5       117387018   536828039   209720511    7  HPFS/NTFS/exFAT

/dev/sda6       536828103   746569989   104870943+   7  HPFS/NTFS/exFAT

/dev/sda7       746571776   956284927   104856576    7  HPFS/NTFS/exFAT

二、命名方法

for example:(hd0,3)是一种硬盘分区的表示方法,代表的是第一块硬盘的第3个分区,从0开始计算的,比如c盘就是hd(0,0)。还有一种表示方法,用sd表示,比如sda4表示的是和(hd0,3)同样的分区,a就是第一块硬盘,4就是分区号,从1开始计算的,所以C盘一般就是sda1。

 Unix的硬盘分区命名规则很简单。命名系统也适合于任何不要求直接连接声卡的光碟。
名的前两个字母反映磁盘类型:如果是普通IDE硬盘,则为hd;如果是SCSI硬盘,则为sd

第三个字母取决于硬盘的位置。第—个硬盘指定为a,第二个硬盘指定为b,等等。换句
话说,如果主控制器连接两个不同的物理IDE硬盘,则第二个盘(从盘)称为hdb。相反,
SCSI硬盘的字母对应于指定的ID号。例如,如果有两个SCSl硬盘,ID为0和1,  则ID为0的
SCSI硬盘称为sda,ID为1的SCSI硬盘称为sdb。命名时,光碟和DvD也归类为硬盘。
   第四个位置的字母反映了磁盘如何分区。



----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

有两种方法访问WindowsXP系统下分区,可以进入Linux后进行手工配置,也可以配置系统脚本,每次系统启动后自动挂接Windows分区,这样每次进入Linux后就可以直接看到WindowXP分区。

一、手动配置方面:

1、进入linux后,打开shell终端,也就是命令行。

2、为你即将挂接的windows分区指定一个文件夹,因为所有的系统分区在linux内都是以文件形式记录和查看的。所以windows分区在linux内看到的也是一个文件夹。建议在mnt内创建一个分区文件夹,比如WinF(windows系统F分区)。

可以在X-windows内使用右键Create New folder ,当然也可以在shell终端下面配置

 first ,进入mnt 文件夹使用命令: (shell /mnt)# mkdir /mnt/WinF

你的文件夹就创建了,当然在linux下文件名称是区分大小写的,这个需要注意

3、使用mount命令将windowsXP的某个分区挂接到Linux下。

(shell /root)#mount (-afEhnrVm) <-l (标签)> <-o(选项)><-t ( 文件系统)> <dev (设备名)><挂入点>

当然前面的(-afEhnrVm) 等这些参数的含义可以通过man mount 命令进行查看,这里就不罗嗦了。

以我的系统为例:我现在希望把WindowXP的F分区挂到 /mnt/WinF 文件夹下,可以使用如下命令

(shell /root)#mount  -t  vfat  /dev/hda7  /mnt/WinF

OK,这样就可以访问WindowsXP下的F盘了。

解释一下这个命令。

mount  挂载命令, -t  指定下一个参数为文件系统参数,vfat 文件系统为vfat ,目前window的fat32 ,或fat 分区都可以用这个参数,但是NTFS格式是不行的,这个可以查看我的另一篇专门讲述如何在linux下挂载NTFS分区的文章。  /dev/hda7 windows下的F分区,为什么呢?

一共有两个普通IDE硬盘,linux 是用 /hd 来标识IDE硬盘的,如果是SCSI硬盘就使用/sd

/mnt/WinF 不用解释了,就是你要映射到linux的一个文件夹。

以上的就是在进入linux系统后手动去挂载硬盘分区然后访问windows分区,下面介绍如何自动挂载。

二、系统启动时自动挂载WindowsXP分区

方法很简单,修改/etc/fstab文件即可,这个文件会在系统启动时执行,并将其中定义的设备进行挂载。我们只要在文件里面加入我们需要挂载的分区就OK了,参考下面的语句。

/dev/hda5  /mnt/WinF  vfat  defaults  0  0

前三个参数不解释了。你应该明白。defaults 为root用户挂装方式。有auto、defaults等。 第一个0 表示可读可写,第二个0表示启动顺序,0为第一个,一般挂载的硬盘分区,包括linux自己的分区也是在这里定义,启动参数也是0,然后系统会安装文件中定义的各个分区顺序进行挂载和读取在这个文件里你还能读到CDROM和Floppy的挂载定义。









WindowsUbuntu双系统环境下,挂载Windows分区(通常是NTFS文件系统)到Ubuntu时出现“只读”权限问题,是一个常见且令人困扰的现象。其主要根源在于Windows的“快速启动”功能,它使得Windows在关机时并未完全关闭系统,而是进入一种休眠状态,将部分系统信息(包括NTFS文件系统的状态)保存到硬盘中,导致Ubuntu系统出于数据安全考虑,以只读模式挂载这些分区,以防止数据损坏 [ref_6]。本文将深入剖析此问题的根本原因,并提供一系列从简单到彻底、从临时到永久的解决方案。 ### 核心原因分析 导致Ubuntu挂载NTFS分区为只读状态的主要原因可以归纳为以下几点: | 原因分类 | 具体描述 | 影响程度 | | :--- | :--- | :--- | | **Windows快速启动未关闭** | 这是最核心、最常见的原因。Windows默认启用此功能,导致系统不完全关机,NTFS分区处于“休眠”或“脏”状态 [ref_3][ref_6]。 | 高 | | **文件系统存在错误** | Windows系统异常关机、软件冲突等可能导致NTFS文件系统出现错误或日志未同步 [ref_3]。 | 中 | | **挂载参数不当** | 在`/etc/fstab`中手动配置挂载时,使用了不正确的选项(如缺少`rw`权限)。 | 低 | | **权限问题** | 挂载点目录的权限设置不正确,导致当前用户无法写入。 | 低 | ### 解决方案总览 解决此问题通常遵循一个排查链条:**先检查并尝试临时修复,再处理根本原因,最后配置永久挂载**。 #### 方案一:临时重新挂载(快速验证) 如果只是偶尔需要写入,可以尝试在终端中以读写模式重新挂载分区。首先,使用`lsblk`或`df -h`命令找到已挂载Windows分区及其挂载点(例如 `/media/username/Windows`)。 ```bash # 查看磁盘分区信息,确认NTFS分区的设备名(如 /dev/nvme0n1p3)和挂载点 lsblk -f # 或 df -h -T | grep ntfs # 假设分区挂载点为 /media/user/Data,将其以读写模式重新挂载 sudo umount /media/user/Data # 先卸载 sudo mount -o rw,remount /dev/nvme0n1p3 /media/user/Data # 再以读写模式挂载 ``` *关键步骤:使用 `mount -o rw,remount` 命令尝试强制以读写模式挂载 [ref_6]。* 如果此命令成功且可以写入,说明问题可能出在自动挂载的默认参数上。如果失败并提示“目标忙”或“文件系统错误”,则需要进入下一方案。 #### 方案二:修复NTFS文件系统(解决“脏”状态) 当分区Windows快速启动而处于“脏”状态时,Ubuntu会拒绝以读写模式挂载。此时,需要在Ubuntu下使用`ntfsfix`工具进行修复。 ```bash # 1. 首先确保目标分区未被挂载,如果已挂载,先卸载 sudo umount /dev/nvme0n1p3 # 2. 使用ntfsfix修复该分区 sudo ntfsfix /dev/nvme0n1p3 ``` *关键步骤:`ntfsfix` 工具会清除NTFS分区上由Windows休眠留下的标志,并尝试修复简单的文件系统错误 [ref_6]。* 执行后,再次尝试挂载(例如`sudo mount /dev/nvme0n1p3 /mnt`)查看是否可写。**请注意**:`ntfsfix`是一个轻量级修复工具,主要用于清除休眠标志。如果它报告严重错误,则必须进入方案三。 #### 方案三:彻底关闭Windows快速启动(根本解决) 这是最推荐的一劳永逸的解决方案,需要在**Windows操作系统**中完成。 1. **重启进入Windows**。 2. 打开**控制面板** -> **电源选项**。 3. 点击左侧的“**选择电源按钮的功能**”。 4. 点击“**更改当前不可用的设置**”。 5. 在“关机设置”区域,取消勾选“**启用快速启动(推荐)**”。 6. 点击“保存修改”。 完成此操作后,**务必从Windows开始菜单中,按住`Shift`键同时点击“重启”或“关机”**,以确保Windows执行一次完全关机,将所有缓存数据写入磁盘并正常卸载NTFS卷 [ref_1][ref_3]。之后启动进入Ubuntu,系统应能自动以读写模式挂载NTFS分区。 #### 方案四:配置/etc/fstab实现永久自动读写挂载 对于需要固定挂载位置(如挂载到`/windows/D`目录)的情况,可以通过编辑`/etc/fstab`文件实现开机自动以读写权限挂载。 1. **获取分区UUID和类型**: ```bash sudo blkid ``` 在输出中找到对应的NTFS分区,记录其`UUID`和`TYPE="ntfs"`。 2. **创建挂载点目录**(如果不存在): ```bash sudo mkdir -p /windows/D ``` 3. **编辑`/etc/fstab`文件**: ```bash sudo nano /etc/fstab ``` 在文件末尾添加一行,格式如下(请替换`UUID`和挂载点为你的实际值): ``` UUID=9814824D14822E76 /windows/D ntfs defaults,uid=1000,gid=1000,umask=022 0 0 ``` *参数说明*: * `defaults`:包含`rw`(读写)、`suid`、`dev`、`exec`、`auto`、`nouser`、`async`等默认选项 [ref_1]。 * `uid=1000,gid=1000`:将挂载的文件所有权赋予你的普通用户(通常1000是第一个用户的ID),这是解决权限问题的关键 [ref_2][ref_4]。 * `umask=022`:设置创建文件的默认权限(目录755,文件644)。 * 最后两个`0`表示不备份且不进行磁盘检查。 4. **测试并应用配置**: ```bash # 测试fstab配置是否正确,无错误输出则表示配置正常 sudo mount -a # 检查挂载点权限 ls -ld /windows/D ``` ### 总结与最佳实践 解决Ubuntu挂载Win盘只读问题的流程可以总结为以下决策路径: 1. **首选方案**:立即进入**Windows,彻底关闭“快速启动”功能**,并用`Shift`+关机的方式完全关闭一次Windows。这是根除问题最有效的方法 [ref_3][ref_6]。 2. **临时救急**:在Ubuntu中使用`sudo ntfsfix /dev/sdXn`命令修复分区,然后重新挂载 [ref_6]。 3. **永久配置**:对于需要固定位置访问的数据盘,通过`/etc/fstab`文件进行配置,并务必添加`uid`和`gid`参数确保用户拥有写入权限 [ref_1][ref_2][ref_4]。 4. **故障排查**:如果以上方法均无效,需考虑在Windows下运行`chkdsk /f X:`(X为盘符)来检查和修复可能存在的深层NTFS文件系统错误 [ref_3]。 遵循上述步骤,绝大多数由Windows快速启动引起的NTFS分区只读问题都能得到妥善解决。关键在于理解其原理:Ubuntu的只读行为是一种保护机制,旨在防止对处于不一致状态的NTFS文件系统进行写入操作,从而保障你的数据安全。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值