linux挂载fc存储有超级坏块_NAND Flash大容量存储器K9F1G08U的坏块管理方法

在进行数据存储的时候,我们需要保证数据的完整性,而NAND Flash大容量存储器K9F1G08U芯片由于工艺上问题,不可避免就会出现有的Block中就是某个位或某些位是块的,就是用块擦除命令也是无法擦除的,K9F1G08U数据手册也讲了坏块是存在的,对于K9F1G08U最多有20个坏块。如果数据存储到这个坏块中,就无法保证该数据存储的完整性。对于坏块的管理K9F1G08U数据手册也有它的方法去处理该坏块的方法,我根据实际经验总结出自己的一种方法。首先我们要定义一个坏块管理表:unsigned char BadBlockTable[128],此数组可以存储1024个Block状态,即每一个字节存储8个Block状态。我们要存储一批数据到NAND Flash中去某个Block时,先执行Block擦除操作,然后分析该Block的1st Page和2st Page中的每个位是否全是FFH,如果全是FFH,则在BadBlockTable数组当前Block对应的字节位给置0,否则置1。如果是1表示当前的块是不能存储数据的,这时需要更换下一个Block来存储这些数据,这样我们重复上面的动作分析再进行分析是否可以存储数据,该块能存储就存储到该块中去。

具体实现的算法程序如下:

Flag=TRUE;

while(TRUE==Flag)

{

Erase_K9F1G08U_Block(K9F1G08U.HighAddress,K9F1G08U.LowAddress);Flag=Check_K9F1G08U_Block(K9F1G08U.HighAddress/64);if(TRUE==Flag)//is invalid block{

BadBlockTable[K9F1G08U.HighAddress/512]|=

(1<

K9F1G08U.HighAddress+=64;//Point to Next Block}

else// is valid block ,record to BadBlockTable{

BadBlockTable[K9F1G08U.HighAddress/512]&=

~(1

}

for(i=0;i

Write_RAM(RAM_BANK_0,K9F1G08U_BAD_BLOCK+i,BadBlockTable[i]);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 以下是在Linux虚拟机中手动添加一块SCSI硬盘,大小为2G,设置一个主分区占用1G空间,并挂载到/sdbnew目录下的步骤: 1. 在虚拟机中添加一块SCSI硬盘 首先需要在虚拟机中添加一块SCSI硬盘。 在VMware虚拟机中,选择“编辑虚拟机设置”,点击“添加硬件”,选择“硬盘”,选择“SCSI”类型,并设置磁盘容量为2G。 2. 使用fdisk创建分区 使用fdisk命令创建分区,步骤如下: # fdisk /dev/sdb # 输入“n”创建一个新分区 # 输入“p”创建主分区 # 输入“1”分区号 # 输入“2048”分区起始扇区 # 输入“+1G”分区大小 # 输入“w”保存分区表 3. 格式化分区 使用mkfs.ext4命令格式化刚刚创建的分区: # mkfs.ext4 /dev/sdb1 4. 创建目录并挂载分区 创建/sdbnew目录并将分区挂载到该目录: # mkdir /sdbnew # mount /dev/sdb1 /sdbnew 5. 配置自动挂载 编辑/etc/fstab文件,添加以下内容,使分区在系统启动时自动挂载: /dev/sdb1 /sdbnew ext4 defaults 0 2 保存并退出。 现在,你已经成功在Linux虚拟机中手动添加了一块SCSI硬盘,并将其格式化并挂载到/sdbnew目录下。 ### 回答2: 在Linux虚拟机中手动添加一块SCSI硬盘,可以按照以下步骤进行配置: 1. 在虚拟机管理软件(如VirtualBox)中,选择虚拟机并进入设置。 2. 在硬盘选项卡下,点击添加按钮,选择新增硬盘。 3. 选择SCSI硬盘类型,并设置大小为2G。 4. 完成硬盘添加后,启动虚拟机并登录Linux系统。 5. 打开终端,并使用fdisk命令进行磁盘分区操作。输入命令 `sudo fdisk /dev/sdb`。 6. 进入fdisk命令交互模式后,输入n创建新分区,然后选择主分区类型。 7. 输入起始扇区和结束扇区来设置分区占用的空间大小,如选择1G,则起始扇区为2048,结束扇区为2097151。 8. 保存分区设置并退出fdisk交互模式。 9. 格式化新分区,输入命令 `sudo mkfs.ext4 /dev/sdb1`。 10. 创建挂载目录,并将新分区挂载到/sdbnew目录下,输入命令 `sudo mkdir /sdbnew` 和 `sudo mount /dev/sdb1 /sdbnew`。 11. 验证挂载结果,输入命令 `df -h` 查看/sdbnew目录是否挂载成功。 12. 设置开机自动挂载,编辑/etc/fstab文件,添加一行 `/dev/sdb1 /sdbnew ext4 defaults 0 0`。 13. 保存文件并退出编辑器。 以上就是手动在Linux虚拟机中添加一块SCSI硬盘、设置主分区和挂载到/sdbnew目录下的步骤。 ### 回答3: 在Linux虚拟机中手动添加一块SCSI硬盘,并设置其为主分区占用1G空间,并挂载到/sdbnew目录下的步骤如下: 1. 首先,虚拟机需要支持热插拔功能。在虚拟机管理软件(如VirtualBox)中,打开虚拟机设置,确保磁盘控制器为SCSI类型。 2. 在已经打开的虚拟机中,通过以下命令查看已安装的磁盘空间和设备情况: lsblk 3. 通过以下命令创建一个新的SCSI设备,并为其分配2G的磁盘空间: sudo fdisk /dev/sdb 输入'n'来创建新分区,按照默认选项创建主分区。 输入'p'来显示分区信息,确保新SCSI设备已创建好。 输入'w'命令将分区表写入磁盘并退出。 4. 格式化分区并设置文件系统(例如ext4): sudo mkfs.ext4 /dev/sdb1 5. 创建一个新的目录/sdbnew来挂载新的SCSI硬盘: sudo mkdir /sdbnew 6. 挂载新的硬盘到/sdbnew目录: sudo mount /dev/sdb1 /sdbnew 7. 为了让系统启动时自动挂载,需将新挂载的分区信息添加到/etc/fstab文件中: sudo vi /etc/fstab 添加以下行: /dev/sdb1 /sdbnew ext4 defaults 0 2 8. 保存并退出/etc/fstab文件。 现在,你已经成功在Linux虚拟机中手动添加了一块大小为2G的SCSI硬盘,并将主分区占用1G的空间挂载到/sdbnew目录下。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值