如果在系统启动前进行磁盘修复

启动讨论 grub/grub2/syslinux/grub4dos/Lilo
回复
psv1988
帖子: 80
注册时间: 2009-02-17 13:48

如果在系统启动前进行磁盘修复

#1

帖子 psv1988 » 2017-07-10 11:27

由于我的系统关机是直接断电 所以容易引起系统问题 分区用的是ntfs格式 经过几次启动后出现了无法挂载的问题
系统提示:Error mounting: mount exited with exit code 13: ntfs_attr_pread_i: ntfs_pread failed: Input/output error
Failed to read NTFS $Bitmap: Input/output error
NTFS is either inconsistent, or there is a hardware fault, or it‘s a
SoftRAID/FakeRAID hardware. In the first case run chkdsk /f on Windows
then reboot into Windows twice. The usage of the /f parameter is very
important! If the device is a SoftRAID/FakeRAID then first activate
it and mount a different device under the /dev/mapper/ directory, (e.g.
/dev/mapper/nvidia_eahaabcc1). Please see the ‘dmraid‘ documentation
for more details

然后我查了下是需要修复下 于是输入命令 ntfsfix /dev/sdb1 之后就可以正常挂载了

现在的问题是设备是没有用户操作的 我想是不是可以每次启动前 先进行下修复 这个能实现吗 在配置中怎么写


另外 我用的是ssd盘 所以io 用的是noop方式
fstab里 挂载盘 uuid=xxxx /xxxx ntfs-3g defaults,discard,noatime,nodiratime 0 2
系统盘的是默认的
大体设置是这样的 我的系统就是直接通电 断电这样的 ntfs为挂载盘 系统盘为ext4 为了系统稳定性还想请教下需要修改什么
psv1988
帖子: 80
注册时间: 2009-02-17 13:48

Re: 如果在系统启动前进行磁盘修复

#2

帖子 psv1988 » 2017-07-11 9:22

这个命令能加到配置文件中么
psv1988
帖子: 80
注册时间: 2009-02-17 13:48

Re: 如果在系统启动前进行磁盘修复

#3

帖子 psv1988 » 2017-07-11 9:31

或者怎么保证在挂载硬盘前进行修复
poloshiao
论坛版主
帖子: 18279
注册时间: 2009-08-04 16:33

Re: 如果在系统启动前进行磁盘修复

#4

帖子 poloshiao » 2017-07-11 11:40

我的系统就是直接通电 断电
是指關機嗎
不鼓勵直接斷電關機
psv1988
帖子: 80
注册时间: 2009-02-17 13:48

Re: 如果在系统启动前进行磁盘修复

#5

帖子 psv1988 » 2017-07-11 15:44

poloshiao 写了:
我的系统就是直接通电 断电
是指關機嗎
不鼓勵直接斷電關機
这个给用户提供的就是直接开关电源的设备 类似于嵌入式设备
psv1988
帖子: 80
注册时间: 2009-02-17 13:48

Re: 如果在系统启动前进行磁盘修复

#6

帖子 psv1988 » 2017-07-11 15:45

我现在就想知道 比如 ntfsfix /dev/sdb1 这个命令 写到/etc/profile中 在挂载前是否可以起效
头像
vickycq
帖子: 4507
注册时间: 2011-03-20 13:12
系统: Debian
来自: 山东省寿光县
联系:

Re: 如果在系统启动前进行磁盘修复

#7

帖子 vickycq » 2017-07-11 16:08

psv1988 写了:我现在就想知道 比如 ntfsfix /dev/sdb1 这个命令 写到/etc/profile中 在挂载前是否可以起效
应该不行。这个是在 login shell 登录时执行的。登录是启动最后阶段。
如果您的 Ubuntu 系统使用 systemd ( 15.04 及以后),您可以尝试创建一个 systemd 服务来执行 ntfsfix,同时在 fstab 中使用 x-systemd.after= 关键字来让这个服务在挂载 ntfs 分区之前运行。没试过。不知道行不行。

参考 https://www.freedesktop.org/software/sy ... mount.html
Debian 中文论坛 - forums.debiancn.org
欢迎所有 Debian GNU/Linux 用户
psv1988
帖子: 80
注册时间: 2009-02-17 13:48

Re: 如果在系统启动前进行磁盘修复

#8

帖子 psv1988 » 2017-07-11 16:22

vickycq 写了:
psv1988 写了:我现在就想知道 比如 ntfsfix /dev/sdb1 这个命令 写到/etc/profile中 在挂载前是否可以起效
应该不行。这个是在 login shell 登录时执行的。登录是启动最后阶段。
如果您的 Ubuntu 系统使用 systemd ( 15.04 及以后),您可以尝试创建一个 systemd 服务来执行 ntfsfix,同时在 fstab 中使用 x-systemd.after= 关键字来让这个服务在挂载 ntfs 分区之前运行。没试过。不知道行不行。

参考 https://www.freedesktop.org/software/sy ... mount.html
谢谢 我试试
psv1988
帖子: 80
注册时间: 2009-02-17 13:48

Re: 如果在系统启动前进行磁盘修复

#9

帖子 psv1988 » 2017-07-14 10:21

vickycq 写了:
psv1988 写了:我现在就想知道 比如 ntfsfix /dev/sdb1 这个命令 写到/etc/profile中 在挂载前是否可以起效
应该不行。这个是在 login shell 登录时执行的。登录是启动最后阶段。
如果您的 Ubuntu 系统使用 systemd ( 15.04 及以后),您可以尝试创建一个 systemd 服务来执行 ntfsfix,同时在 fstab 中使用 x-systemd.after= 关键字来让这个服务在挂载 ntfs 分区之前运行。没试过。不知道行不行。

参考 https://www.freedesktop.org/software/sy ... mount.html

我在就在配置文件rc.local中加了 这个挂载的盘是用来记录数据的 所以是ntfs格式

ntfsfix /dev/sdb1

mount -t ntfs-3g -o defaults,noatime,nodiratime,discard /xxxx /xxxx
在加载前先修复下 中间需要延迟下吗

另外我在fstab上系统挂载的命令是否应该增加下面的配置 确保异常断电后系统启动 文件格式是ext4

data=journal 我看介绍说是最安全但性能最低的方式
barrier=1 我看介绍说 如果经常异常关机 应该选1
commit=300 这个数值应该差不多
我的应用是系统启动后有个软件收集数据然后保存到ntfs记录盘上 降低性能是否影响数据写入
poloshiao
论坛版主
帖子: 18279
注册时间: 2009-08-04 16:33

Re: 如果在系统启动前进行磁盘修复

#10

帖子 poloshiao » 2017-07-14 18:57

我的系统关机是直接断电
能否在直接斷電以前 先下指令關機 例如
sudo systemctl poweroff # systemd 初始化
sudo shutdown -hP now # Upstart 初始化
or
init 0
再 直接断电
ntfsfix /dev/sdb1
斷電引起的損壞
ntfsfix 只能修復一部分
比較嚴重的 需要 testdisk
有些損壞 ntfsfix + testdisk 還不一定能完全修復

意思是 應該想辦法
在直接斷電以前 先軟關機
或 至少 umount
回复