V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
升级到 Windows 11
MrLonely
V2EX  ›  Windows

千小心万小心,还是一不小心,现在我的系统洁癖让我很难受

  •  
  •   MrLonely · 70 天前 · 8146 次点击
    这是一个创建于 70 天前的主题,其中的信息可能已经有所发展或是发生改变。

    起因在这里 https://www.v2ex.com/t/855437

    买了个向日葵控控,但是它没有远程挂载镜像的功能。官方说是以后的固件版本会加上,但是一看发布时间,到现在都一年多了。还是没加上。所以想着自己去做一个替代方案。

    平时自己用 U 盘装系统用的是 Ventoy ,那理论上来说把镜像文件放到 U 盘里,然后用控控的 KVM 选择镜像即可。

    可问题是我这一走就是两年,万一这中间需要添加镜像怎么办?万一刚好就在 ESXi 主系统崩溃的时候要用新镜像抢救机器怎么办?

    那还得有它的备选方案,装一个可以联网的 PE 系统,用来给 U 盘添加新镜像。先尝试了 U 盘里本来就有的 AOMEI PE ,发现它并没有连上网。可能是没有 NUC11 的 Intel 2.5G 网卡驱动的原因。然后想起了之前在 sspai 上看到的 edgeless ,好像是可以添加驱动的。

    先装了个基础版 edgeless ,依然没有驱动。而后在插件列表里寻找了一番,没有找到最准确的驱动之后选择自制驱动插件。可是自制驱动插件并没有成功。然后就想着反正是 PE 系统,拿里面随便几个国产毒瘤驱动包试一试。

    试了之后其实还是失败了,PE 环境下并没有成功。

    但是就在我回到用来做 U 盘测试的这台 NUC11 的主系统时,竟然发现桌面上躺着一个 DrvCEO 的图标。我当时就难受了。原来 PE 环境下的毒瘤驱动包是装到硬盘里的,不是挂载当前运行的 PE 系统的。

    抱着无比沉痛的心情到控制面板卸载了这个毒瘤。看起来似乎是干净了。但是心里总在默默难受,是不是可能某个角落里还留着一些垃圾。

    祈祷着去 Google 搜索了一下,如果没有大批结果在讨论为什么卸载不掉那就说明这个软件是能卸载干净的。而“驱动总裁”+“卸载”这两个关键词的搜索结果给人的感受并不美妙。

    唉,可能是我太敏感了。

    52 条回复    2022-06-01 01:29:22 +08:00
    SawyerGuo
        1
    SawyerGuo  
       70 天前 via iPhone   ❤️ 9
    我以前也这样,学会放下,完美的东西不存在。
    makelove
        2
    makelove  
       70 天前
    不差这点硬盘空间,想想 windows 系统本身就是个臃肿的乐色是不是就好些了 :)
    真差硬盘空间不如入我大 Linux,轻量简洁没有太多用不到的东西
    sker
        3
    sker  
       70 天前
    可以尝试人肉遥控 比如叫一个附近(或者美团上)搞网络的人员付费上门装你远程装不了的东西自己打开微信视频指导
    MrLonely
        4
    MrLonely  
    OP
       70 天前
    @makelove 这倒确实是。Windows 也有一个让我难受的一个地方是每次 update 就会膨胀好几个 G ,磁盘清理的时候嘴上说我可以帮你清理掉 3.4G 。一计算好像跟更新前占用的空间差不多。可是实际清理操作结束之后释放出来的空间仅有 100M ,200M 。

    但如果是直接用已经包含了此次 update 的镜像做安装,会发现跟老版本的全新安装占用空间是几乎一样的。也就是 Windows 自己的增量更新会占用掉一些实际用不到,但也无法释放的空间。

    相比之下我其实也不是太在乎磁盘空间,比如我用 scoop 安装了很多只用过一次的软件。也占用了不少空间。但是对 scoop 的信任让我丝毫不怀疑有一天我需要他们干干净净地离开我的电脑的时候他们会乖乖离开。而毒瘤软件的未知文件和未知进程并不一定,这种未知是带给我难受的主要原因。
    documentzhangx66
        5
    documentzhangx66  
       70 天前
    看问题,一定要看清本质。

    你的需求,其实是需要超高性价比地,对一套设备进行远程运维。问题是,这种需求,根本不存在实现方案。

    就算按你说的,用 HPE Gen8 的 iLO ,如果断电断网怎么办?如果路由器坏了怎么办?如果雷雨天断电后,电力恢复了,但电脑坏了无限重启怎么办?

    如果想要靠谱一点,找个运维托管,或找个专业的帮你上门维护,价格肯定不便宜,而且私密性与安全性也得不到保证。
    MrLonely
        6
    MrLonely  
    OP
       70 天前
    @documentzhangx66 确实有这样的问题存在。
    所以我也只是尽可能地做好事前安排。如果实在有做不到的,那像#3 说的一样找人上门是最后的办法。但是出现了问题,不得不找人上门的时候我突然想到,如果我在出国之前就做了 XXXYYY 的准备工作之后,现在其实就不用这么麻烦了。多少有些心里不舒服吧。
    就像我现在会觉得,早知道我就不点那个毒瘤驱动包了。

    我现在是抱着一种发射火星车的心情在做准备工作。到时候能救回来就能接着用,救不回来了,那没了就没了。
    huoshen
        7
    huoshen  
       70 天前   ❤️ 1
    我已经出国一年,家里的一台 6700K windows 2019 已经连续运行 280+天未出现任何故障,一台 3215U 配置 ESXi 已经运行了 140+天,中间 ESXi 出故障,微信电话打回去让父母帮忙重启的。你要做的就是配置好能装系统的,然后尽可能简化其他所有操作,实在不行让父母帮忙弄一下。
    tril
        8
    tril  
       70 天前   ❤️ 1
    同样有系统洁癖,一旦安装软件之后和我预期有不符的地方我就想重装系统。解决方法是让 NAS 定时给电脑拍快照,虚拟机就用系统自带的快照功能拍,随时可以回档到前一天甚至前半天的状态。现在有了随时回档的能力,反而症状轻了不少,遇到问题改改也能接受,反正大不了可以回档。

    对于楼主最初的问题,个人认为,想临时联网下载镜像的话 Linux 或者 Linux 镜像自带的 live 系统会比 PE 更好一些。电脑上多插几块 u 盘 /硬盘,遇到问题大不了用 ventoy 临时装个 win/linux 系统在上面,干完活再格式化掉。( ventoy u 盘最好也搞两个,避免其中一个 u 盘坏了)
    ysc3839
        9
    ysc3839  
       70 天前 via Android
    Windows PE 能无视原系统的文件权限,随意进行访问修改数据的。真要在 PE 里运行不可信的软件,原分区起码要开启 BitLocker 。但就算这样,恶意软件还是可以清除所有数据。
    ysc3839
        10
    ysc3839  
       70 天前 via Android
    另外遇到这种情况我肯定会重装系统的,Windows 太开放了,恶意程序能干的坏事很多,可以修改系统本身,达到无法清除的目的。
    MrLonely
        11
    MrLonely  
    OP
       70 天前
    @tril 是哦,我试试 live cd 有没有好用的。


    @huoshen 重启也有办法,用小米的智能插座。
    MrLonely
        12
    MrLonely  
    OP
       70 天前
    @tril 这种 NAS 快照是怎么实现的呀?能恢复到物理盘上嘛?有没有关键词让我去查一查?


    @ysc3839 PE 权限这些我确实不清楚,看来以后在 PE 里也要小心。唉,这次难受归难受,但是暂时不打算重装。重装一次做完全部的初始化,装完软件,确实太累了。等下次吧。
    TheSixWings
        13
    TheSixWings  
       70 天前
    Packer+Ansible 结束战斗
    cjpjxjx
        14
    cjpjxjx  
       70 天前   ❤️ 1
    UPS+向日葵控控+智能插座配合继电器开关机,已经扔在老家两年了没啥问题,主机上插了两个 U 盘,其中一个 PE+Win10 镜像用来救急,另一个可以随便折腾
    tril
        15
    tril  
       70 天前
    @MrLonely 我用的是群晖自带的 Active Backup for Business ,其他家的 NAS 也有这种功能,只是名字不同。虚拟机和物理机都可以备份。如果要低成本的话,不知道黑群晖能不能用上这个功能。

    恢复要用配套的还原工具,类似于 PE ,选择备份的版本和目标磁盘就可以自动还原,非常简单。
    oko
        16
    oko  
       70 天前
    你这个我有方法的,首先另外再搞一台电脑,装上远程软件,然后再用 RDP 连接到主电脑,这样就可以不用给主电脑安装任何乱七八糟的软件来实现远程控制了,我就是这么干的
    ReZer0
        17
    ReZer0  
       70 天前   ❤️ 1
    啊,深有体会。就好比你装了某个软件,结果发现不好用,在控制面板把它卸了,同时用辅助工具清了注册表并手动检查删除了安装目录。但是你总感觉身上有蚂蚁在爬,感觉你的系统不干净了,但是又找不到怎么让它干净的办法,重装又浪费时间,然后就一直难受下去。
    Qetesh
        18
    Qetesh  
       70 天前 via iPhone
    我选择 ilo 这种 ipmi 。退一步选择企业级网络 kvm 。再退一步可以用 netboot.xyz ,系统也可以随便装
    Eytoyes
        19
    Eytoyes  
       70 天前
    搞个 win to go 不好吗,完整 Windows 功能,当你需要时候让家里人给你插上,插 usb 总可以啊,跟手机充电一个道理
    SimonOne
        20
    SimonOne  
       70 天前
    我也有这个洁癖。所以以前每天都重装系统 😁
    cnbatch
        21
    cnbatch  
       70 天前
    如果时间来得及,要不考虑换成自带 IPMI 功能的主板
    xuyang2
        22
    xuyang2  
       70 天前
    楼主适合使用 Immutable Linux
    比如 Clear Linux, Fedora Silverblue, Steam OS
    MrLonely
        23
    MrLonely  
    OP
       70 天前
    @TheSixWings 这个工具好像很强大,但是我感觉学习周期会很长。可能这次出国是赶不上了。

    @cjpjxjx 对我来说可能也是这样,两个 U 盘比 1 个灵活很多。

    @tril 我试着去 Unraid 里找找有没有类似的产品插件吧。但是不抱太大希望。

    @oko 我现在是在一个 Windows 机上测试带外管理的实现,但是到时候是要用来管理一台 ESXi ,所以 RDP 不太行。

    @Qetesh 这个 netboot 是需要镜像本身可以通过 http 下载吧?我自己打包的镜像到时候估计是要通过 SMB 传输的。虽然到时候额外搞一个 http 传文件也不难。不过我感觉这个大概率没有 intel i225 的驱动。我等下去尝试一下。

    @Eytoyes WTG 需要单独的一个 U 盘,而且对于 U 盘读写速度要求还比较高。所以还是优先考虑 PE 或者 Live CD 了。如果再不行,那就 WTG 了。总比没有预案要好。

    @SimonOne 你用的是什么方法实现的呀?网吧那种重启还原吗?

    @xuyang2 我 Linux 水平比较差,Ubuntu 还没用利索呢,不过等我接下来更多的接触 Linux 的时候会试试你说的这几个的。毕竟这心理洁癖从 Windows 换到 Linux 也一样存在的。
    MrLonely
        24
    MrLonely  
    OP
       70 天前
    @cnbatch 前几天看到了一个劝退 ITX 装机的。对,我之前自己就是用 ITX 装的。当时很精确地选择了一个够用下最紧凑的 ITX 主板和机箱。现在 64G 内存仅仅是刚刚够。两个 3.5HDD 倒是还算够用。不过想换 IPMI 主板的话,机箱电源也得换,而且我用的还是 i9-12900K 这种家用 CPU ,不知道 IPMI 的主板配这个 CPU 的好不好找。

    现在都有点想直接卖掉这台机器,重新搞一台新设备。可是二手服务器很少有水冷方案。爸妈晚上睡觉喜欢开窗通风,风冷服务器就太吵了,会打扰他们休息。我姐家倒是有个独立空闲的房间可以用来放服务器,但是她家只有联通宽带,又是中部省份,相比跨洋光纤出海口的电信百兆上传来说,网络质量估计会差一个档次。
    oko
        25
    oko  
       70 天前
    @MrLonely 搞一个物理服务器托管不就完了,或者直接租个母鸡
    MrLonely
        26
    MrLonely  
    OP
       69 天前
    @oko 主要是贵,比如 Equinix Metal 上面一个 8 核 64G 的三年合约总共要一万六千多刀。折合人民币 10 万了。虽然它有它的优势。但是对于我自己的使用场景来说,我组装一个 12900K 16 核 64G 才 1 万块。就算考虑上电费,网费,高延迟,没有备份,没有维护造成的价格差异,也不值这 9 万块钱啊。
    ooooo
        27
    ooooo  
       69 天前   ❤️ 1
    system32 下
    要是多了个 .dll 或者 .sys
    都要弄清楚是哪里来的
    算不算系统洁癖
    Lightbright
        28
    Lightbright  
       69 天前 via Android
    dism++导出网卡驱动然后重装系统,这次别用那什么总裁,直接用 dism 或者 dism++添加驱动。吃一堑长一智,慢慢就完美了
    SimonOne
        29
    SimonOne  
       69 天前
    @MrLonely #23 先在旧系统里把自己想要装的软件都试用一下,然后列一张清单,把安装包都准备好,再重装一版系统,然后补丁打上,然后按照自己的偏好把软件都装好了,再封装成镜像,哪天不爽了就重装一下。
    felixcode
        30
    felixcode  
       69 天前 via Android
    没这样洁癖,系统一用就是好多年不重装,那些流氓软件不就是留下些文件和注册表记录么,大不了搜索删除下,进程列表是干净的就行了。
    vocaloid
        31
    vocaloid  
       69 天前
    建议装完系统配置完软件之后立即备份一遍系统,有问题可以马上还原

    卸载软件可以使用类似 uninstall tool 的软件卸载,可以把残留的东西卸载掉

    可以使用一些 ark 工具,旧版本 win10 可以使用 pchunter ,新版可以使用 openark 或者 Windows-Kernel-Explorer 。用来检查是否有不明驱动、进程、启动项

    最后推荐使用“摆烂疗法”,如果不能确定这个软件是否对你电脑有害,或者说目前看不到害处,那就摆烂。该干嘛干嘛,打一会游戏,听一会歌,看看电影,过个几天这种感觉基本能够消退
    kkocdko
        32
    kkocdko  
       69 天前 via Android
    我也有一点点这种“洁癖”,我的方案是 Linux ,文件系统用 btrfs ,快照功能很好用( cow ,瞬间的几乎无需写入硬盘的快照),没事干就恢复一下
    Osk
        33
    Osk  
       69 天前   ❤️ 1
    这跟 Windows 没半毛钱关系, 离线攻击 Linux 一样中招. 这就是 Bitlocker 或者 LUKS 分区加密存在的意义.



    所以, 你需要 BitLocker + TPM, 无人交互的启动就不用设置 TPM + Pin 了. 这方面 Windows 做的比大部分 Linux 发行版安全多了.

    我一直用的 Linux + KVM 虚拟化作为基础设施, 但后来在简单了解了 Linux pre-boot 阶段的安全防护后, 认为 Linux 做得很糟心, 最后切换到了 Windows Server/Hyper-V Server + Hyper-V 虚拟化.
    Osk
        34
    Osk  
       69 天前
    对了, 推荐下微软大佬的 sysinternal suits 工具, 特别是 autoruns, procexp, procmon, sigcheck, listdll 等工具. 对付大部分牛皮癣够用了
    jim9606
        35
    jim9606  
       69 天前
    在这个应用人均 Electron 或者带一个 CEF 的时代去抠那点程序空间真的没啥用,我觉得还是靠 BtrFS/ZFS 那样用压缩和块去重解决算了。
    随便打开 Everything 搜一下 ucrtbase.dll 、vcruntime140.dll 、msvcp140.dll 、d3dcompiler_47.dll 就能找到一堆,有不少还是微软第一方的应用,自家文档强烈推荐用系统更新和 redist 包部署 UCRT 和 VC++ Runtime ,合着自家应用都不听的。
    不过无所谓了,好歹不少还是能共享的,手机 APP 人均自带 c++、ffmpeg 、webview 、cronnet 也没听有谁抱怨过,PC 应用还算不那么臃肿了。
    cnbatch
        36
    cnbatch  
       69 天前
    能够支持 i9-12900K 又支持 IPMI 的 ITX 主板,那还真是暂时没人出。
    去掉 ITX 这个限制的话,我只能找到一款:X13SAE-F ,价格可能超出预算。

    如果重新弄一台设备又想低成本,可以考虑 AMD 方案,Asrock Rack (华擎的服务器级主板系列)提供的主板选择很多,其中有一部分支持桌面处理器系列,这样的好处是内存既能用普通台式机的内存,又能用服务器的 UDIMM ECC 内存,任君选择——前提是不使用自带核显的 AMD CPU ,这种 CPU 只有很少数可以支持 ECC 内存,所以选择无核显就对了。
    不用担心无法开机,Asrock Rack 的 AMD 主板自带集成显卡。
    (闲鱼可能有 Asrock Rack 的二手,但我没试过,毕竟闲鱼的水太深了)

    唯一问题是,这样一套弄下来不仅需要重新花钱,而且也要重新花时间,这就只有楼主自己能衡量了
    nuk
        37
    nuk  
       69 天前   ❤️ 1
    老哥搞一个好点的硬盘和一个 wifi 插座啊,一般 ESXi 硬重启不会好的,用 kvm 也是白搭
    Buges
        38
    Buges  
       69 天前 via Android   ❤️ 1
    系统洁癖那就再也不要用 Windows ,Windows 本身就是不干净的,Windows 无与伦比的复杂性和不透明性让你无论如何都不能完全理解和掌控你的系统。
    比如 Windows 删了软件最常见的残留的注册表,你知道是哪些注册表吗?而 Linux 下只需清理那几个 XDG 目录就可以了。
    imycc
        39
    imycc  
       69 天前
    再怎么小心,系统都会一点点“变脏”的。数据分散在各种地方,AppData 里,Program Files 里,用户目录,文档,注册表,什么地方都能藏一点数据。昨天还找到一个留着启动项的。。赶紧去注册表给它删了。就是不知道有没有留着服务的。
    前几天把用了五年多的电脑重装一遍,一些乱七八糟的小 bug 就消失了。人体也是一样,小毛病积累多了就要歇菜,可惜人没法重装。。
    ly879
        40
    ly879  
       69 天前
    俺也是,安装软件必须按照既定规划来,一旦乱了,即使卸载也难受。
    flyz
        41
    flyz  
       69 天前
    DrvCEO 是系统总裁的驱动软件,无病毒,无广告,无限速,用着还可以。
    MrLonely
        42
    MrLonely  
    OP
       69 天前
    @Lightbright 好的,下次就学会了。

    @SimonOne 我在虚拟机上是这么做的。把一切初始化工作做好后搞一个 template 。物理机上一开始我想用 Windows 自带的备份还原功能搞一个这样的还原点。但是后来测试了几次发现根本不知道怎么用它。太难用了。所以这种封装镜像的操作需要用到什么软件呢?有关键词提示一下吗?

    @Osk Sysinternals Suite 好像是个好玩意。

    @imycc 最后这句话太扎心了。岁月不饶人啊。爸妈一点点老了,我自己也一点点老了。想到没有办法跟心爱的老婆永永远远在一起,只能活这一辈子也是很难受。
    ysc3839
        43
    ysc3839  
       69 天前
    @Buges “而 Linux 下只需清理那几个 XDG 目录就可以了。”
    那只是大部分程序选择不乱丢垃圾而已,在没有沙盒的情况下,Linux 程序乱丢垃圾,一样很难清理。你主动选择不乱丢垃圾的 Windows 程序,一样只需清理 HKCU\Software 或 %AppData% 就可以了。
    Buges
        44
    Buges  
       69 天前 via Android
    @ysc3839 以臭名昭著的国产软件来说,不按标准乱丢垃圾也就在 HOME 里丢几个 dotfile/dir 而已,很容易发现和清理,其他的地方要么是临时目录要么普通用户根本没有写权限,所有的东西都在文件里,没有注册表这种**。
    Linux 下你可以很容易地知道每个文件都是干什么的、属于哪个程序的。你能搞清楚每个注册表项是干嘛的吗?
    ysc3839
        45
    ysc3839  
       69 天前
    @Buges 注册表本质是把各种配置文件中每一项给拆成了文件系统树的结构,如果其他操作系统算上配置文件中的每一项,还很容易知道是干什么的、属于哪个程序的吗?
    Linux 因为是开源的,翻遍代码是可以知道是干什么的,但是并不能说容易。macOS 因为不开源,即使没有注册表,也一样很难知道是干什么的、属于哪个程序的。
    这不是注册表本身的问题,而是不开源+系统复杂的问题,注册表只是把问题放大了,配置文件则把问题缩小了。
    GNU/Linux 因为遵循 Unix 哲学,整个系统都比较简单,清理起垃圾确实不复杂,这点我不否认。但是遇到 Android 等不那么遵循 Unix 哲学的系统,则没那么简单了。
    Buges
        46
    Buges  
       68 天前 via Android
    @ysc3839 所以说注册表就是最典型的过度设计,增加了无谓的复杂度还没有任何好处,纯文本配置文件简单直接够用,有需要也应用也可以自己使用二进制的数据库。像是 Linux 下文件关联、打开方式之类的只需要加个 .desktop 文本文件,注册表就一大堆键; linux 下添加个开机启动,要么丢 xdg autostart 目录要么起个 systemd 服务,win 下我记得有个叫 autoruns 的小工具,可以看到各种应用开机自启的 108 种姿势。Windows 复杂度上远远高于 Linux ,而注册表就是其中最典型的体现。
    当然以上说的都是 GNU/Linux ,Android 确实是复杂度不输于 Windows 的系统,光那一堆格式不同的“二进制”XML 就够恶心的了。不过作为更现代的操作系统,封装程度可比 Windows 好多了,清理垃圾这种需求系统都自己规范好了,根本不需要用户操心(当然旧版系统上国产流氓要权限拉屎例外),这方面 iOS 更进一步,普通用户几乎连文件系统的概念都不需要知道。
    ysc3839
        47
    ysc3839  
       68 天前 via Android
    @Buges
    “没有任何好处”
    有数据库带来的完整性保证,以及缓存的性能提升。

    “纯文本配置文件简单直接够用”
    那为什么 macOS 要抛弃纯文本 XML 的 plist ,改用 binary plist 呢?
    Buges
        48
    Buges  
       68 天前 via Android
    @ysc3839 文本配置文件能有几行,这个让 Windows 上软件跑的比 Linux 更快了吗?如果应用自己有特殊需要可以自己带二进制数据库。过度设计就是理论上的好处没起到实际效果平白增加复杂度。
    第二点和 Android 的不同格式的二进制 XML 一样,同样是过度设计,要压缩换个更简洁的格式都比搞二进制 XML 强。
    当然考虑到系统设计者还有不同的目的:从封装的角度出发,有意识地为用户浏览和编辑制造阻碍。
    ysc3839
        49
    ysc3839  
       68 天前 via Android
    @Buges 性能方面我没测试过,说不清楚。
    选择二进制格式,我认为苹果是做过调查,比解析纯文本更快的。以及改用二进制格式不就是“换个更简洁的格式”吗?还是说你认为只有纯文本才算简洁?
    Buges
        50
    Buges  
       68 天前 via Android
    @ysc3839 简洁自然是指人类可读、用户友好、冗余字符少的文本格式。那点配置文件能影响多少解析速度?
    ysc3839
        51
    ysc3839  
       68 天前 via Android
    @Buges 配合专用工具的情况下,注册表也是人类可读、用户友好、冗余字符少。至于纯文本是否影响性能,HTTP/2 相比 HTTP/1 就改为了非纯文本。以及数据不一定就只有“那点”,久而久之会越来越多的。
    FrankAdler
        52
    FrankAdler  
       68 天前
    我每次卸载完,都会用 everything 搜一遍相关字样,手动删除,
    然后会再用 Autoruns 扫描下服务、驱动、DLL 相关,
    还会手动在注册表搜一遍,但是还是觉得难受,基于不信任,觉得可能有残留。
    所以我现在尽量把软件装进 sandboxie 里面去,可能会麻烦点,但是终于有点放心的感觉了。
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2955 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 11:09 · PVG 19:09 · LAX 04:09 · JFK 07:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.