组保留的标签 余下为需要删除的标签
unset($oldtag[$key]);
}
}
}
if (!empty($oldtag)) {
$tagids = array();
foreach ($oldtag as $tagid => $tagname) {
$tagids[] = $tagid;
}
well_oldtag_delete($tagids, $tid);
}
$r = well_tag_process($tid, $fid, $create_tag, $tagarr);
return $r;
}
// 删除标签和绑定的主题
function well_oldtag_delete($tagids, $tid)
{
$pagesize = count($tagids);
$arrlist = well_tag_find_by_tagids($tagids, 1, $pagesize);
$delete_tagids = array(); // 删除
$tagids = array();
$n = 0;
foreach ($arrlist as $val) {
++$n;
if (1 == $val['count']) {
// 只有一个主题
$delete_tagids[] = $val['tagid'];
} else {
$tagids[] = $val['tagid'];
}
}
!empty($delete_tagids) and well_tag_delete($delete_tagids);
$arlist = well_tag_thread_find_by_tid($tid, 1, $n);
if ($arlist) {
$ids = array();
foreach ($arlist as $val) $ids[] = $val['id'];
well_tag_thread_delete($ids);
}
!empty($tagids) and well_tag_update($tagids, array('count-' => 1));
}
// 标签数据处理 $arr=新提交的数组 $tagarr=保留的旧标签
function well_tag_process($tid, $fid, $new_tags = array(), $tagarr = array())
{
if (empty($tid)) return '';
// 新标签处理入库
if ($new_tags) {
$threadarr = array();
$tagids = array();
$i = 0;
$size = 5;
$n = count($tagarr);
$n = $n > $size ? $size : $size - $n;
foreach ($new_tags as $name) {
++$i;
$name = trim($name);
$name = stripslashes($name);
$name = strip_tags($name);
$name = str_replace(array(' ', '#', "@", "$", "%", "^", '&', '·', '<', '>', ';', '`', '~', '!', '¥', '……', ';', '?', '?', '-', '—', '_', '=', '+', '.', '{', '}', '|', ':', ':', '、', '/', '。', '[', ']', '【', '】', '‘', ' ', ' ', ' ', ' ', ' '), '', $name);
$name = htmlspecialchars($name, ENT_QUOTES);
if ($name && $i <= $n) {
// 查询标签
$read = well_tag_read_name($name);
if ($read) {
// 存在 count+1
$tagids[] = $read['tagid'];
} else {
// 入库
$arr = array('name' => $name, 'count' => 1);
$tagid = well_tag_create($arr);
FALSE === $tagid and message(-1, lang('create_failed'));
$read = array('tagid' => $tagid, 'name' => $name);
}
$tag_thread = array('tagid' => $read['tagid'], 'tid' => $tid);
$threadarr[] = $tag_thread;
$tagarr[$read['tagid']] = $read['name'];
}
}
!empty($threadarr) and tag_thread_big_insert($threadarr);
!empty($tagids) and well_tag_update($tagids, array('count+' => 1));
}
$json = empty($tagarr) ? '' : xn_json_encode($tagarr);
return $json;
}
?> $v = implode(",", $v);
$temp[] = $v;
}
// 去掉重复的字符串,也就是重复的一维数组
$temp = array_unique($temp);
// 再将拆开的数组重新组装
$output = array();
foreach ($temp as $k => $v) {
if ($stkeep) $k = $starr[$k];
if ($ndformat) {
$temparr = explode(",", $v);
foreach ($temparr as $ndkey => $ndval) $output[$k][$ndarr[$ndkey]] = $ndval;
} else $output[$k] = explode(",", $v);
}
return $output;
}
// 合并二维数组 如重复 值以第一个数组值为准
function array2_merge($array1, $array2, $key = '')
{
if (empty($array1) || empty($array2)) return NULL;
$arr = array();
foreach ($array1 as $k => $v) {
isset($v[$key]) ? $arr[$v[$key]] = array_merge($v, $array2[$k]) : $arr[] = array_merge($v, $array2[$k]);
}
return $arr;
}
/*
* 对二维数组排序 两个数组必须有一个相同的键值
* $array1 需要排序数组
* $array2 按照该数组key排序
* */
function array2_sort_key($array1, $array2, $key = '')
{
if (empty($array1) || empty($array2)) return NULL;
$arr = array();
foreach ($array2 as $k => $v) {
if (isset($v[$key]) && $v[$key] == $array1[$v[$key]][$key]) {
$arr[$v[$key]] = $array1[$v[$key]];
} else {
$arr[] = $v;
}
}
return $arr;
}
?>
Mac 重装系统(包含对苹果的吐槽, 使用磁盘工具制作启动U盘, 使用终端制作启动U盘, 使用启动盘重装系统)编程频道|福州电脑网
Mac 重装系统(包含对苹果的吐槽, 使用磁盘工具制作启动U盘, 使用终端制作启动U盘, 使用启动盘重装系统)
编程之家580
更新时间:2026-04-03 20:25:31
领导让我给他重装Mac系统(MBA 2010年末版本), 以前没装过就按照苹果官方推荐的方法重装, 没想到有此进入深坑.
设备: MacBookAir 2010年末版(以下简称MBA), SanDisk CZ50(8G) U盘, 能开机运行的Mac电脑.
首先说下苹果的推荐方法以及漏洞
正如网上大多人说的那样:
1.将 Mac 开机或重新启动后,立即按住 Option-Command (⌘)-R 以从互联网恢复功能启动。看到 Apple 标志时松开这两个键。看到“实用工具”窗口时,启动即完成。
2.从“实用工具”窗口中打开“磁盘工具”,然后使用“磁盘工具”抹掉您的内建硬盘(使用“Mac OS 扩展(日志式)”格式)。完成后,退出“磁盘工具”。
3.在“实用工具”窗口中,选取“重新安装 macOS”(或“重新安装 OS X”), 然后按照屏幕上的说明进行操作。
此操作将安装您的 Mac 最初随附的系统。它未与您的 Apple ID 关联,因此,新所有者可以使用其 Apple ID 通过 App Store 升级到更高版本。
4.完成后,您的 Mac 会重新启动并进入设置助理。按下“Command-Q”,然后点按“关机”。新所有者便可以使用自己的信息完成设置助理的各个步骤。
以上第2步让把磁盘给清空, 清空的时候苹果可不会管你原先的系统在App Store是否还供货, 它只管删. 好的, 删除之后进行第3步, “重新安装 macOS”, 按照屏幕说明一直往下走, 如果你的mac是老版的mac那么恭喜你, 你要中招了, 因为老板的mac系统App Store已经不供货了(像我领导的mac就是MBA 2010年末的机子, 系统是mac os 10.8), 好吧, 不供货了,那恢复成原来的吧, 长按关机键关机, 重启结果屏幕上出现一个闪烁带着问号的文件夹—-对, 找不到磁盘了. 如下图:
由于领导之前没有使用TimeMachine和其它方式备份, 我也不尝试使用 Command-R恢复了, 乖乖制作启动U盘:
使用磁盘工具制作启动U盘
我使用的是网上常用的方法, 参见下文
http://jingyan.baidu/article/3d69c551a4f7d5f0cf02d71d.html
我制作的是当前最新的sierra, 结果并不能用, 插上之后开机长按option根本不显示制作的启动盘, 搜了百度, 众说纷纭, 有说不识别U盘3.0的有说老版本的可以用这个方法, 新版本的要用终端做. 目前我也没弄清楚为甚.
注意: 不显示启动盘的话会显示一个Internet Recovery选项(见下图)意即网络恢复, 我试了几遍(见下图), 每次至少3个小时, 发现一直在循环, 回复完成后会进入”实用工具”的页面, 仍然需要从App Store重装. 但是App Store又不提供这个版本了, 只能放弃!
使用终端制作启动U盘
参考的是这篇文章
http://www.iplaysoft/macos-usb-install-drive.html
终端命令是:
sudo /Applications/Install\ macOS\ Sierra.app/Contents/Resources/createinstallmedia --volume /Volumes/Sierra --applicationpath /Applications/Install\ macOS\ Sierra.app --nointeraction
运行之后经过大约一刻钟, 提示下面这些信息的话, 表示制作完成.
Erasing Disk: 0%... 10%... 20%... 30%...100%...
Copying installer files to disk...
Copy complete.
Making disk bootable...
Copying boot files...
Copy complete.
Done.
皇天不负有心人
插入电脑, 开机长按option, 出现了选择启动盘:
想来真的是新版本的系统只能用终端做!
因为咨询过淘宝上的制作U盘的客服, 推荐我装10.10.5, 我也在他店里买了启动盘, 我打算不装Sierra了, 乖乖用买来的10.10.5装, 心疼我的50块大洋啊.
使用启动盘重装系统
- 插上启动U盘, 开机长按option, 出现磁盘选择页面, 注意不要连接WiFi(客服提示的, 我也不知道为啥), 选中启动盘启动
- 到”实用工具”页面的时候, 先选择磁盘工具抹掉电脑自带磁盘的数据, 然后退出磁盘工具, 使用mac系统新副本安装, 安装过程按提示选择, 同意协议, 选择语言…
我安装的是OS 10.10.5的系统, 安装的过程出现了错误提示: 这个”安装 OS X Yosemite”应用程序副本不能验证, 它在下载过程中可能已遭破坏或篡改.
这时候你需要退出安装程序到”实用工具”界面, 在最上方状态条中找到”工具”–>”终端”, 打开终端, 修改时间: date 032208102015, 执行过后退出终端继续使用新副本安装, 这次一路可以走通了.
安装成功:
希望能给后来的人做参考, 谨慎抹数据, 也小小满足下吐槽苹果的欲望.
本文发布于:2024-10-17,感谢您对本站的认可!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:重装系统终端启动盘磁盘工具苹果
发布评论