系统分区管理

一.linux系统中的磁盘管理

1.本地存储设备的识别

1)fdisk -l       ---真实存在的设备

主机硬盘320G

插入的U盘信息


2)cat /proc/partitions    ---系统识别的设备


3)blkid                  ---系统可使用的设备


4)df                     ---系统正在挂载的设备

2.设备的挂载和卸载


1)设备名称

/dev/xdx    ---/dev/hd0   /dev/hd1   /dev/sda  /dev/sdb  /dev/sda1  /dev/sda2   /dev/sdb1
/dev/sr0     ---光驱
/dev/mapper/*  ---虚拟设备

2)设备的挂载

mount 设备   挂载点
mount /dev/sdb1  /dai     ---将sdb1挂载到/dai

此时,在/dai中的文件管理等同于对U盘进行管理

mv /etc/passwd

查看U盘中出现passwd文件

umount /dai | /dev/sdb1    ---卸载


mount -o ro /dev/sdb1  /dai  ---只读挂载


mount      ---查看挂载信息


mount -o remount ,rw /dev/sdb1 | /dai  ---将只读挂载重新读写挂载

mount      ---查看挂载信息

3)解决设备正忙情况

[root@doundation 62 ~]#umount /dai/
umount: /dai: target is busy.             ---有程序在使用此设备
        (In some cases useful info about processes that the device is found by lsof(8) or fuser(1))

#解决方法1
fuser -kvm /dai
umount /dai

#解决方法2
lsof /dai
[root@foundation62 ~]lsof /dai/
lsof :WARNING: can't stat () fuse.gvfsd-fuse file system /run/user/1000/gvfs
      Output is information may be incomplete.
COMMAND  PID  USER        FD TYPE DEVICE SIZE/OFF NODE  NAME
bash              4639  root         cwd   DIR        8,17   16384          1         /dai

kill -9 4639          ---强制结束进程4639


umount /dai         ---卸载/dai

 

 

下面的实验必须用server做

3.磁盘分区

1.硬盘0磁道1扇区的512个字节中记录的信息如下

512=446   +         64                 +2
  mbr(主引导记录) mpt(主分区表)      55aa(硬盘的有效性标识)

硬盘分区表
  64
1个分区占用16个字节
一块硬盘上最多可以划分4个主区

2.分区步骤


1)fdisk -l                                  ---查看硬盘分区信息


2)fdisk /dev/vdb                                       ---在/dev/vdb中进行分区管理


m                                           ---查看能够进行的操作
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition            ---删除
   g   create a new empty GPT partition table
   G   create an IRIX (SGI) partition table
   l   list known partition types
   m   print this menu
   n   add a new partition           ---新建
   o   create a new empty DOS partition table
   p   print the partition table     ---显示分区信息
   q   quit without saving changes   ---退出
   s   create a new empty Sun disklabel
   t   change a partition's system id   ---修改分区id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit     ---保存分区表信息到硬盘
   x   extra functionality (experts only)


1.#建立主分区

Command (m for help): n           ---新建
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended


Select (default p): p             ---主分区
Partition number (1-4, default 1):    ---id用默认


First sector (2048-20971519, default 2048):  ---分区开始
Using default value 2048   
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +100M          ---给这个分区100M的大小
Partition 1 of type Linux and of size 100 MiB is set

Command (m for help): p    ---显示信息

 

   Device Boot      Start         End      Blocks   Id  System
/dev/vdb1            2048      206847      102400   83  Linux

Command (m for help): wq     ---保存退出
The partition table has been altered!

2.#扩展分区

当系统已经有三个主分区时

Command (m for help): n
Partition type:
   p   primary (3 primary, 0 extended, 1 free)
   e   extended
Select (default e): e              ---3个主分区出现要先划分扩展分区,也可以无视默认推荐,继续划分主分区,但是之后再划分会报错,无法划分更多分区


Selected partition 4
First sector (616448-20971519, default 616448):                            ---默认初始位置
Using default value 616448
Last sector, +sectors or +size{K,M,G} (616448-20971519, default 20971519):              ---默认最终位置,将所有空间都给扩展分区
Using default value 20971519
Partition 4 of type Extended and of size 9.7 GiB is set

Command (m for help): p

   Device Boot      Start         End      Blocks   Id  System
/dev/vdb1            2048      206847      102400   83  Linux
/dev/vdb2          206848      411647      102400   83  Linux
/dev/vdb3          411648      616447      102400   83  Linux
/dev/vdb4          616448    20971519    10177536    5  Extended

Command (m for help): wq
The partition table has been altered!

4.给设备安装文件系统

ext3  rhel5及之前的版本     最多支持32TB的文件系统和2T文件,实际2TB文件系统,16G文件
ext4  rhel6               1EB    16TB
xfs   rhel7               18EB   9EB     7G/s   4G/s
                         文件系统大小 允许保存的最大文件  下载最大速度,写入最大速度

1)mkfs.xfs    /dev/vdb1    ---格式化分区vdb1(1号虚拟硬盘)

2)mount /dev/vdb1 /dai     ---将硬盘挂载到/dai下,此时才能在文件中控制硬盘内容


df检测是否挂载成功

 

3)partprobe    ---立即同步分区表

4)设置开机启动挂载命令

vim /etc/fstab   
##文件内容格式:
设备           挂载点    文件系统     挂载参数     是否备份    是否检测
/dev/vdb1     /mnt           xfs            defaults             0                   0

mount -a   ---立即挂载上面的文件内容立即执行,可以先不挂载,设置开机挂载文件后,用此命令立即挂载


5.swap分区管理

1)临时设置分区

swap分区建立,划分分区并设定分区标签为82

fdisk /dev/vdb                   ---管理/dev/vdb的分区


n                                         ---新建分区
last +1000M                     ---给swap分区1000M的空间


p                                         ---查看已建立分区


t                                         ---修改分区信息

修改第5分区的信息


L                       ---列出标签信息并修改标签


82                            ---将标签修改为82(swap分区)


p                     ---查看分区信息,第5分区已被修改为swap分区


wq                                       ---保存之前的操作

partprobe                          ---立即同步分区表

mkswap /dev/vdb5     ---格式化swap分区


swapon -a /dev/vdb5  ---开启这个设备的服务,没有报错的话,说明建立成功


swapon -s            ---查看swap服务开启状态,检测swap分区是否建立成功


2)永久分区设置

配置开机自动挂载文件
vim /etc/fstab
 /dev/vdb5     swap            swap             defaults            0           0

硬件分区      挂载点     文件系统            挂载参数 是否备份 是否检测


swapon -a    ---没有报错的话说明永久挂载成功

3)swap分区删除

vim /etc/fstab
dd删除刚才添加的一行


swapon -a
swapoff   /dev/vdb5                      ---将/dev/vdb5分区的设备服务关闭


必须将vdb5的所有使用都停掉,再删除swap分区,否则系统会默认正在使用,不能正常删除
fdisk /dev/vdb                         ---管理硬件分区


d           ---删除
5          ---删除第5个分区


p           ---查看这个硬盘下的所有分区


wq          ---退出保存

partprobe

swapon -s   ---检测是否删除成功


6.配额(配额是针对分区的)

1)新添加一个逻辑分区/dev/vdb5

2)mount -o usrquota /dev/vdb5  /public                  ---将/dev/vdb5 分区挂载到/public


4)chmod 777 /public/                         ---给/public/满权限,便于实验


5)edquota -u student                      ---设置student用户的配额

 

指定管理的分区  ,将hard(最大空间)设置为20M

6)设置永久配额
vim /etc/fstab               


/dev/vdb5        /public          xfs              defaults,usrquota                      0         0

硬件分区      挂载点     文件系统            挂载参数,配额管理    是否备份 是否检测

测试:

需要切换到student用户进行
[student@localhost ~]$ dd if=/dev/zero of=/public/file bs=1M count=200  ---从/dev/zero下切出文件,放到/public/目录下,名称为file,大小为1M,次数为200次

再切出一块大小共20M的文件放到/public/,名称为file,没有报错,此处尝试保存为file1,被拒绝,是此前设置问题。

查看/public/file的文件大小,为20M,新的文件将空间正好占满,原文件丢失。

 

 

7.磁盘加密

luks加密方式 :

先在磁盘外铺一层加密,再在之外铺一层文件系统,提取磁盘中的数据时,先是得到加密的数据,然后才经过文件系统编辑,强制清除密码之后,得到的数据都是经过加密的,没有解密方式,使磁盘安全性更高


环境:server

首先建立分区
fdisk  -l           可以查看到设备/dev/vdb下有5个分区


步骤:

1)cryptsetup luksFormat /dev/vdb5   ---将设备分区5加密(此处YES确认必须大写,否则不生效)

2)cryptsetup open /dev/vdb5 dai       ---将设备解密,使之成为一个虚拟设备,并命名为dai

3)ll /dev/mapper/                                  ---查看设备

4)mkfs.xfs /dev/mapper/dai                ---将/dev/mapper/dai格式化为xfs格式

5)mount /dev/mapper/dai /mnt/          ---将虚拟设备挂载到/mnt/
df                                                           ---查看挂载信息

6)touch /mnt/file{1..10}                        ---在/mnt/下新建文件

7) umount /mnt/                        ---卸载/mnt/

8)cryptsetup close dai             ---关闭虚拟设备,此时/dev/vdb5处于无法访问状态

9)ll /dev/mapper/                       ---查看设备,发现虚拟设备消失


(检测一)此时磁盘加密状态,虚拟设备不存在

10)mount /dev/mapper/dai /mnt/      ---挂载虚拟设备报错,因为虚拟设备不存在
mount: special device /dev/mapper/dai does not exist

(检测二)直接挂载真实设备,系统报错无法识别加密磁盘

11)mount /dev/vdb5 /mnt/           ---挂载真实设备报错,因为是加密状态
mount: unknown filesystem type 'crypto_LUKS'

12)cryptsetup open /dev/vdb5 westos ---将设备解密,使之成为一个虚拟设备,并命名为westos


(检测三)13.mount /dev/mapper/westos /mnt/      ---挂载

14)ls /mnt/                         ---此时加密磁盘被解密,可以查看/mnt/的文件,发现之前在真实设备中新建的10个文件

 

8.加密挂载开机自启

步骤:

1)vim /etc/fstab                   ---编辑开启自动挂载文件


/dev/mapper/disk                           /pub            xfs     defaults    0       0   
设备名称(虚拟设备名称任意指定)          挂载点(需要已经存在)  文件系统   挂载参数 是否备份 是否检测

2)vim /etc/crypttab                ---配置添加虚拟设备信息的文件


disk             /dev/vdb5      /root/vdb5pass
虚拟设备名称 虚拟设备对应的物理分区 物理分区的密码指定文件(它不能自动去查询,需要第5步操作)

3)vim /root/vdb5pass              ---编辑指定的密码文件


2018dai                            ---保存着此前加密操作的密码


 
4)chmod 600 /root/vdb5pass         ---此文件指定只允许超级用户能查看

5)cryptsetup luksAddKey /dev/vdb5 /root/vdb5pass     ---让/root/vdb5pass与/etc/crypttab文件产生联系,当创建虚拟分区需要密码时,系统会自动去查询密码文件

检测:

reboot


df               ---查看到挂载信息,开机自启设置成功,设备挂载到/pub下

 

#取消加密(强行格式化加密设备后,加密就不存在了)

步骤:

1)vim /etc/fstab          ---删除自动挂载

2)vim /etc/crypttab       ---删除自动挂载指定查看的加密信息文件

3)df                      ---查看挂载信息


umount /pub/              ---卸载虚拟设备

4)cryptsetup close disk   ---关闭虚拟设备

5)mkfs.xfs /dev/vdb5 -f   ---强制将/dev/vdb5格式化为xfs格式

检测:

mount /dev/vdb5 /mnt/


 df                       ---因为取消了加密,所以可以直接进行挂载,不会报错


总结:如果要取消加密,那就必须要格式化,起到了对文件的保护作用,没有密码的用户,就不能获取到设备中的文件


 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
抓取QQ空间公开信息需要模拟浏览器行为,而且需要登录QQ账号获取Cookie,因此比较复杂。以下是一个简单的示例代码,仅供参考: ```python import requests from bs4 import BeautifulSoup # 登录QQ账号获取Cookie session = requests.session() login_url = 'https://xui.ptlogin2.qq.com/cgi-bin/xlogin' params = { 'appid': '715030901', 'daid': '73', 'pt_no_auth': '1', 's_url': 'https://qzs.qq.com/qzone/v5/loginsucc.html?para=izone', 'pt_no_verifycode': '1', 'ptlang': '2052', 'u1': 'https://qzs.qq.com/qzone/', 'pt_randsalt': '0', 'pt_vcode_v1': '0', 'pt_verifysession_v1': '', } data = { 'u': '你的QQ号码', 'p': '你的QQ密码', 'verifycode': '', 'pt_randsalt': '0', 'pt_vcode_v1': '0', 'pt_verifysession_v1': '', 'u1': 'https://qzs.qq.com/qzone/', 'ptredirect': '0', 'h': '1', 't': '1', 'g': '1', 'from_ui': '1', 'ptlang': '2052', 'action': '2-0-1524631886794', 'js_ver': '10243', 'js_type': '1', 'login_sig': '', 'pt_uistyle': '40', 'aid': '715030901', 'daid': '73', 'pt_qzone_sig': '1', 'pt_3rd_aid': '0', } headers = { 'Referer': 'https://xui.ptlogin2.qq.com/cgi-bin/xlogin?appid=715030901&daid=73&pt_no_auth=1&s_url=https://qzs.qq.com/qzone/v5/loginsucc.html?para=izone&pt_no_verifycode=1&ptlang=2052&u1=https://qzs.qq.com/qzone/&pt_randsalt=0&pt_vcode_v1=0&pt_verifysession_v1=', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3', } response = session.get(login_url, params=params, headers=headers) soup = BeautifulSoup(response.text, 'html.parser') data['login_sig'] = soup.select('#login_sig')[0]['value'] response = session.post(login_url, params=params, data=data, headers=headers) # 抓取QQ空间公开信息 qq_number = '123456789' # 要抓取的QQ号码 url = f'https://user.qzone.qq.com/{qq_number}' headers = { 'Referer': url, 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3', 'Cookie': '; '.join([f'{k}={v}' for k, v in response.cookies.items()]), } response = session.get(url, headers=headers) soup = BeautifulSoup(response.text, 'html.parser') print(soup.select('#feed_friend_list')) ``` 需要注意的是,以上代码仅供学习和参考,不保证一定能成功抓取QQ空间公开信息。此外,抓取他人信息可能涉及个人隐私,建议谨慎使用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值