测试环境:VMware Workstation / centos8


重新扫描SCSI总线添加设备,
$ echo "- - -" > /sys/class/scsi_host/host0/scan
$ echo "- - -" > /sys/class/scsi_host/host1/scan
$ echo "- - -" > /sys/class/scsi_host/host2/scan
上面的host0/host1/host2主要还得看机器,可能数量会有不一样。

刷完就可以看到新增的那块磁盘了

[root@centos8-nat-168-182-152 ~]# fdisk /dev/sdb //对sdb磁盘进行分区
Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x72914843.
Command (m for help): m //输出帮助信息
Help:
DOS (MBR)
a toggle a bootable flag //设置启动分区
b edit nested BSD disklabel //编辑分区标签
c toggle the dos compatibility flag //flag
Generic
d delete a partition //删除一个分区
F list free unpartitioned space //列出分区类型
l list known partition types //输出帮助信息
n add a new partition //建立一个新的分区
p print the partition table ///打印分区表
t change a partition type //改变分区的ID
v verify the partition table //检查验证分区表
i print information about a partition
Misc
m print this menu
u change display/entry units
x extra functionality (experts only)
Script
I load disk layout from sfdisk script file
O dump disk layout to sfdisk script file
Save & Exit
w write table to disk and exit
q quit without saving changes
Create a new label
g create a new empty GPT partition table
G create a new empty SGI (IRIX) partition table
o create a new empty DOS partition table
s create a new empty Sun partition table
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free) //p是主分区
e extended (container for logical partitions) //e是扩展分区
Select (default p): p
Partition number (1-4, default 1): 1 //定义分区数量 --主分区最多只能有四个
First sector (2048-16777215, default 2048): //表示起始扇区;默认从第2048块扇区开始是因为,由于EFI的兴起,要给EFI 代码留磁盘最开始的1M空间.
Last sector, +sectors or +size{K,M,G,T,P} (2048-16777215, default 16777215): +1024M //此处可直接输入柱面号码,但需要你自己计算分区大小,也可直接用+..M(如上),让系统自己分配柱面号码。
Created a new partition 1 of type 'Linux' and of size 1 GiB. //这里就为此分区分配了1G的空间
Command (m for help): w //保存刚才的配置信息。
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
查看(fdisk -l或者lsblk)

注意
上面的分区只适用于磁盘小于2T,大于2T需要用parted来分区
格式化:指将分区格式化成不同的文件系统。
文件系统:指操作系统用于明确存储设备或分区上的文件的方法和数据结构:即在存储设备上组织文件的方法。
注意
但是当你在格式化的时候,有可能找不到这个分区。这是因为Linux没有把分区信息读到内核来,我们需要输入partprobe这个命令,来使我们内核重读一下我们的分区信息。
格式化命令
mkfs -t ext4 /dev/sdb1或 mkfs.ext4 /dev/sdb1 两者命令皆可
Linux下的文件类型有ext2、ext3、ext4、xfs等等,我们可以使用命令:mkfs. 然后用按TAB键来查看都有哪些文件类型。
[root@centos8-nat-168-182-152 ~]# mkfs.ext4 /dev/sdb1
mke2fs 1.45.6 (20-Mar-2020)
Creating filesystem with 262144 4k blocks and 65536 inodes
Filesystem UUID: 1463fdcf-7360-4eb2-a671-d07262266121
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
Allocating group tables: done
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
检查,格式化后就有UUID
[root@centos8-nat-168-182-152 ~]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 xfs 58a9a0c3-f34d-41f7-a3e8-40e4801d8615 /boot
└─sda2 LVM2_member tA0cp2-gAml-dmLs-i3Rh-GHqT-iNDT-fa3PBt
├─cl-root xfs 9cbc11d5-0d6b-4c1a-8511-fba93dada487 /
└─cl-swap swap f0029228-fb9b-4131-ae57-f0ba1282a0c6 [SWAP]
sdb
└─sdb1 ext4 1463fdcf-7360-4eb2-a671-d07262266121
sr0 iso9660 CentOS-8-4-2105-x86_64-dvd 2021-06-01-20-39-18-00
将指定的一个目录作为挂载点目录时,如果挂载点的目录有文件,那么文件会被隐藏。因此当我们需要挂载目录时,最好新建一个空文件夹来作为挂在点目录。(重启后失效)
创建挂载目录
$ mkdir -p /opt/data1
挂载
$ mount /dev/sdb1 /opt/data1

取消挂载,下面两条命令均可
$ umount /dev/sdb1 # 磁盘名
$ umount /opt/data1 # 挂载目录名
使用永久挂载,就意味着它开机会自动挂载(编辑 /etc/fstab 文件)
命令:blkid:查看对应分区的UUID(编号)。UUID唯一标识每一个分区,防止错误的挂载。除此之外,还会显示分区的类型。(建议先复制一下sdb1的UUID,一会儿会用到)
[root@centos8-nat-168-182-152 ~]# blkid /dev/sdb1
/dev/sdb1: UUID="1463fdcf-7360-4eb2-a671-d07262266121" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="72914843-01"
使用vi编辑 /etc/fstab在命令行直接输入vim /etc/fstab 就可以编辑,实现开机自动挂载。
$ echo 'UUID="1463fdcf-7360-4eb2-a671-d07262266121" /opt/data1 ext4 defaults 0 0' >> /etc/fstab

/etc/fstab该文件中存在六列参数:
第一列:设备文件或UUID或label(三者的区别看下面)
第二列:设备的挂载点(空目录)
第三列:该分区文件系统的格式(可以使用特殊的参数auto,自动识别分区的分区格式)
第四列:文件系统的参数,设置格式的选项
第五列:dump备份的设置(0表示不进行dump备份,1代表每天进行dump备份,2代表不定日期的进行dump备份)
第六列:磁盘检查设置(其实是一个检查顺序,0代表不检查,1代表第一个检查,2后续.一般根目录是1,数字相同则同时检查)
设备文件、UUID、label作为标识的不同:
可以查看sdb1分区的UUID和label(详细信息) ,发现sdb1没有设置label,但是可以查看/dev/sr0的lable(/dev/sr0是光驱的设备名)

最后验证:
由于内核还没有读取这个命令,使用mount -a 这个命令来让内核读取这个文件(通过mount -a 读取/etc/fstab 重新挂载)
$ mount -a

我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h
rpartition和partition有什么区别?我已经阅读了文档,但我认为它们是一样的。只是那些出现在后来的ruby版本中吗? 最佳答案 以下示例将有助于识别差异:"abccba".partition("b")#=>["a","b","ccba"]"abccba".rpartition("b")#=>["abcc","b","a"]所以区别在于rpartition搜索最右边的匹配项,而不是最左边的匹配项。 关于Rubyrpartition与分区?,我们在StackOverflow
这个问题在这里已经有了答案:Railsformattingdate(4个答案)关闭4年前。我想格式化Time.Now函数以显示YYYY-MM-DDHH:MM:SS而不是:“2018-03-0909:47:19+0000”该函数需要放在时间中.现在功能。require‘roo’require‘roo-xls’require‘byebug’file_name=ARGV.first||“Template.xlsx”excel_file=Roo::Spreadsheet.open(“./#{file_name}“,extension::xlsx)xml=Nokogiri::XML::Build
我喜欢使用Textile或Markdown为我的项目编写自述文件,但是当我生成RDoc时,自述文件被解释为RDoc并且看起来非常糟糕。有没有办法让RDoc通过RedCloth或BlueCloth而不是它自己的格式化程序运行文件?它可以配置为自动检测文件后缀的格式吗?(例如README.textile通过RedCloth运行,但README.mdown通过BlueCloth运行) 最佳答案 使用YARD直接代替RDoc将允许您包含Textile或Markdown文件,只要它们的文件后缀是合理的。我经常使用类似于以下Rake任务的东西:
给定一个复杂的对象层次结构,幸运的是它不包含循环引用,我如何实现支持各种格式的序列化?我不是来讨论实际实现的。相反,我正在寻找可能会派上用场的设计模式提示。更准确地说:我正在使用Ruby,我想解析XML和JSON数据以构建复杂的对象层次结构。此外,应该可以将该层次结构序列化为JSON、XML和可能的HTML。我可以为此使用Builder模式吗?在任何提到的情况下,我都有某种结构化数据-无论是在内存中还是文本中-我想用它来构建其他东西。我认为将序列化逻辑与实际业务逻辑分开会很好,这样我以后就可以轻松支持多种XML格式。 最佳答案 我最
是否有简单的方法来更改默认ISO格式(yyyy-mm-dd)的ActiveAdmin日期过滤器显示格式? 最佳答案 您可以像这样为日期选择器提供额外的选项,而不是覆盖js:=f.input:my_date,as::datepicker,datepicker_options:{dateFormat:"mm/dd/yy"} 关于ruby-on-rails-事件管理员日期过滤器日期格式自定义,我们在StackOverflow上找到一个类似的问题: https://s
路由有如下代码:resources:orders,only:[:create],defaults:{format:'json'}resources:users,only:[:create,:update],defaults:{format:'json'}resources:delivery_types,only:[:index],defaults:{format:'json'}resources:time_corrections,only:[:index],defaults:{format:'json'}是否可以使用1个字符串为所有资源设置默认格式,每行不带“默认值”散列?谢谢。
我刚刚按照thebootsygempage上的安装说明进行操作在我保存并查看帖子内容之前,一切看起来都不错。这是输出在View中的样子:HeaderSubhead:似乎没有呈现任何html格式,因为它被引号或类似的东西转义了-其他人有这个问题吗?我没有在github页面或SO上看到任何问题来指出我正确的方向。除了遵循gem安装说明之外,我还没有做任何事情,但也许我错过了什么或者只是犯了一个愚蠢的错误。如果你还有什么想知道的,请尽管问。干杯 最佳答案 你需要有这样的东西,转义html: 关
有没有一种简单的方法可以将给定的整数格式化为具有固定长度和前导零的字符串?#convertnumberstostringsoffixedlength3[1,12,123,1234].map{|e|???}=>["001","012","123","234"]我找到了解决方案,但也许还有更聪明的方法。format('%03d',e)[-3..-1] 最佳答案 如何使用%1000而不是进行字符串操作来获取最后三位数字?[1,12,123,1234].map{|e|format('%03d',e%1000)}更新:根据theTinMan的
什么Ruby或RailsDSL会将字符串"mccdougal"格式化为"McDougal",同时留下字符串"McDougal"原样?将titleize传递给"McDougal"结果如下:"McDougal".titleize#=>"McDougal" 最佳答案 据我所知,没有可以处理这种情况的Rails助手。这是一个非标准的边缘案例,需要特殊处理。但是,您可以创建自定义字符串变形。您可以将这段代码放入初始化程序中:ActiveSupport::Inflector.inflections(:en)do|inflect|inflect.