我正在使用joyent_20130405T010449Z
可启动 USB 运行 SmartOS 版本。长话短说,root 密码已经丢失多年了。
我尝试使用“root”作为密码,但失败了。我尝试不使用密码,但失败了。我尝试使用 USB 上的 platform/root.password 中的密码,但仍然失败。密码是其他的,我猜不出来。
我能noimport=true
通过从 grub 菜单中选择“Live (noinstall)”选项(使用内核选项)并输入“root”作为密码来登录。然后我可以通过运行成功生成新的密码哈希/usr/lib/cryptpass newpassword
,但之后就不清楚该怎么做了。
我尝试按照说明进行操作位于此处,但它们似乎并不适用于我:
当我启动“Live(noinstall)”时,没有/usbkey
挂载点,并且编辑/etc/shadow
没有持久效果(当我重新启动时它会重置)。
boot/grub/menu.lst
我尝试编辑USB 驱动器上的条目,覆盖root_shadow=[hash]
内核选项的输出/usr/lib/cryptpass newpassword
,但重新启动并尝试使用“newpassword”登录仍然失败。
作为最后的手段,我可以考虑通过更换新版本的新 USB 密钥来“重新安装” SmartOS。如果我这样做,我的 ZFS 池和虚拟机会发生什么?
答案1
这此处的说明是正确的,但在无导入模式下启动的情况下,它们是不完整的。usbkey
是“区域”zpool 中的文件系统,在无导入模式下启动时,必须在重置密码之前将其挂载。要在无导入模式下挂载:
确认“区域”zpool存在:
$ zpool import
pool: zones
id: ##########
state: ONLINE
- snip -
导入:
$ zpool import zones
确认 Zones/usbkey 文件系统存在,并且是“遗留”挂载点(意味着它是用mount
而不是挂载的zfs mount
):
$ zfs list
NAME USED AVAIL REFER MOUNTPOINT
- snip -
zones/usbkey ### - #### legacy
- snip -
安装它:
$ mkdir /usbkey
$ mount -F zfs zones/usbkey /usbkey
然后按照密码重置说明:
$ umount /etc/shadow
$ cp /usbkey/shadow /etc/shadow
$ passwd root
$ cp /etc/shadow /usbkey/shadow
就这样,当您正常重启时,密码更改将会保留。